LINUX.ORG.RU

Автодополнение с префиксом

 ,


0

3

Есть набор аргументов вида \d+_\w+ - осмысленное слово с бессмысленным числовым префиксом. На самом деле - ветки в VCS с названиями типа 1111_feature-name.

Можно ли запилить автодополнение по человеческому имени ветки чтобы числа в начале заполнялись сами? Т.е. чтобы git checkout fea<Tab> разворачивался в git checkout 1111_feature-name? Разумеется подразумевается что имея строку fea, регэкспом 1111_feature-name можно найти в списке доступных (хотя для коротких строк вероятно несколько вариантов будет которые хорошо бы перебирать).

А погуглить - не?

http://www.debian-administration.org/article/317/An_introduction_to_bash_comp...

comp.sh:

touch 12_aaa
touch 34_aab
touch 56_abb
touch 78_bbb

_foo() 
{
    local cur prev opts
    COMPREPLY=()
    cur="${COMP_WORDS[COMP_CWORD]}"
    prev="${COMP_WORDS[COMP_CWORD-1]}"

	if [[ ${cur} != -* ]] ; then
        COMPREPLY=( $(find . -regextype posix-extended -regex ".*/[0-9]+_[^/]*${cur}[^/]*" -printf %f\\n ) )
		return 0
    fi
}
complete -F _foo foo

Запускать
$ source ./comp.sh

Создаст пачку файлов. Набери в терминале foo a и попробуй дополнение. Когда будет однозначность, заменит на что нужно и еще цифры вперед подставит.

Посолить, поперчить по вкусу.

Kroz ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.