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

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

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

1 ответ1

1

Чтобы получить эту функциональность, вам нужно записать следующие строки в файл ~/.inputrc :

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

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

# 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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .