функция автозаполнения вкладки bash

функция автозаполнения вкладки bash

Мне бы хотелось иметь функцию автозаполнения в bash, которая бы перебирала все варианты, как в zsh, и одновременно выполняла бы обычную операцию, то есть выводила бы все варианты, предполагая, что их не слишком много, а в противном случае подтверждала бы выбор перед печатью.

Эти 2 не должны быть взаимоисключающими. Я знаю, как заставить его циклически проходить по возможностям (bind 'TAB:menu-complete'), но он теряет первую функцию.

Кроме того, мне было интересно, можно ли вернуться назад (что-то вроде shift+tab, как во многих других программах), потому что очень раздражает необходимость проходить весь цикл заново.

решение1

Для получения данной функциональности необходимо записать в ~/.inputrcфайл следующие строки:

# cycle forward
Control-k: menu-complete
# cycle backward
Control-j: menu-complete-backward

Таким образом, вы сохраните текущее поведение Tab. Есть также еще один параметр конфигурации, который вы, возможно, захотите добавить:

# display one column with matches
set completion-display-width 1

Он отображает возможности в одном столбце, поэтому вместо:

file1 file2 file3 file4...

или

file1  file3  ...
file2  file4

Вы получаете:

file1
file2
file3
file4
...

на мой вкус, гораздо приятнее для глаз.

Для получения дополнительной информации см. man readlineили посетитеВеб-сайт библиотеки GNU Readline.

Связанный контент