У некоторых git
команд есть много опций, и часто было бы полезно найти в них ту, которая мне нужна - я просто искал опцию, которая контролирует TABширину git-gui
, но есть около 200 дополнений git config
. Очевидный обходной путь - скопировать все дополнения в редактор и поискать их, но я бы предпочел сделать
[something] | grep tab
Там нет man
или info
страниц для compgen
, help compgen
даже не объясняет свои собственные варианты, и нет автозаполнения для compgen
(как это для иронии?).
PS: compgen -A
не работает.
PPS: Это не вопрос о git-gui
- Решение вопроса о ширине вкладки было в другом месте.
PPPS: речь идет не об автозаполнении команд, а только о параметрах команды .
bash
autocomplete
compgen
l0b0
источник
источник
Ответы:
Вы можете использовать следующую функцию, которая использует тот же способ, которым
sudo
автоматическое завершение генерирует список завершения:где
_command_offset
определяется в bash-завершении (пакете).ПРИМЕЧАНИЕ: функция должна быть запущена в интерактивной оболочке (т. Е. Если она находится в файле, файл должен быть получен, а не просто запущен), иначе необходимые правила / функции завершения не будут определены.
PS.
compgen -A
работает только для встроенных действий, то, что вы должны были попробовать (но тоже не работает)compgen -F
(или на самом делеcompgen -o bashdefault -o default -o nospace -F _git
). Причина, по которой это не работает (и документация для встроенных команд bash, включая compgen / complete), может быть найдена в bash (1) .источник
local COMP_LINE="$*"
)