Комментарии 7
Версия под bash не сработает под zsh? Что-нибудь более универсальное возможно?
0
По поводу универсальности я как то, признаться не подумал. Те варианты, что я видел (в т.ч. и этот) работать не будут — но можно ограничиться переписыванием только самой функции, ответственной за дополнение.
0
Вообще‐то в zsh есть слой совместимости с bash, позволяющий использовать скрипты автодополнения bash из zsh. Но если у вас есть время, то лучше сделать автодополнение под zsh: возможности bash в этом плане довольно убоги, в том числе и из‐за readline.
Для включения слоя совместимости используйте
Для включения слоя совместимости используйте
autoload bashcompinit && bashcompinit
. +1
Отлично! У меня всё руки не доходили написать туториал по автокомплитам. А там есть о чём писать.
0
А что это за программа с таким интересным набором флагов?
0
Гуевина и виджет для kde для netctl (минималистичная утилита для работы с сетью в arch, идущая по дефолту).
0
В 99% случаев автокомплит нужен только для аргументов, а автокомплит по файлам и директориям умеет сам readline:
_parse_help [any_prog] — вызывает программу с аргументом --help. Программа должна уметь корректно обработать этот аргумент и вывести небольшой хэлп и описание аргументов (пример из LLST).
_proga()
{
local cur prev words cword
_init_completion -s || return
if [[ $cur == -* ]]; then
COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) )
[[ $COMPREPLY == *= ]] && compopt -o nospace
fi
} &&
complete -F _proga proga
_parse_help [any_prog] — вызывает программу с аргументом --help. Программа должна уметь корректно обработать этот аргумент и вывести небольшой хэлп и описание аргументов (пример из LLST).
+2
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.
Написание своих автодополнений для Shell. Часть 2: bash