Как включить заполнение клавишей Tab из терминала, характерного для исполняемого файла

В ударе я полагаю, что возможно включить заполнение клавишей Tab на терминале для условий, которые характерны для вызываемого исполняемого файла.

Например, учитывая исполняемый файл "едят" с допустимыми аргументами {пирог, морковь, банан}, ввод 'ест, автомобиль' должен завершиться для 'употребления в пищу моркови'.

Я полагаю, что это возможно, потому что я видел его с завершением вкладки 'муравья' его цели (хотя, как это было настроено, я не знаю).

Как это поведение может быть реализовано?

7
задан tshepang 4 June 2014 в 23:47
поделиться

2 ответа

Это делается с помощью скриптов в /etc/bash_completion.d/ , и если вы хотите написать собственную поддержку завершения для исполняемого файла вот руководство, которое поможет вам начать работу .

Если вам нужно заставить работать только общие исполняемые файлы, в вашем дистрибутиве Linux, вероятно, есть пакет bash-completion с поддержкой общих команд.

9
ответ дан 7 December 2019 в 03:14
поделиться

Это очень похоже на подстановку имени файла , где оболочка попытается выполнить автозаполнение на основе подстановочного символа подстановки ... например ....

echo foo*

перечислит все файлы в текущем каталоге, начинающиеся с 'foo' ... оболочка bash подстановила подстановочный знак и расширила его в список файлов ...

В MSDOS была аналогичная концепция, хотя она не была явно связана во время выполнения, я говорю о старых материалах Turbo C, когда подстановка подстановочных знаков была активирована путем связывания с ' wildargs.obj '(если мне не изменяет память), внутри этот код будет перебирать каталог и расширять список на основе сопоставления с шаблоном подстановки.

В Linux / * nix land подстановка является стандартной, но, тем не менее, вы не можете вручную нажать клавишу Tab последовательности, чтобы выполнить сопоставление с образцом или завершение ... поскольку разные терминалы могут транслировать клавишу табуляции по-разному и, конечно, обрабатывать ее по-разному. ...

0
ответ дан 7 December 2019 в 03:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: