Назад | Перейти на главную страницу

Bash: полное меню только на несколько матчей

Есть ли способ с автоматическим завершением Bash циклически перебирать совпадения с помощью menu-complete, только если есть 1-2 варианта, и использовать листинг с завершением в противном случае?

пример

домашний каталог содержит рабочий стол, документы, загрузки, проекты и общедоступные

~$ cd D<tab><tab> # lists matches
Desktop    Documents    Downloads
~$ cd De<tab> # completes Desktop

~$ cd P<tab> # completes Projects
~$ cd Projects<tab> # completes Public

Первый complete поведение, последнее menu-complete. Я хочу, чтобы он выбрал второй вариант, если есть только 1-2 совпадения, первый, если их 3 или более.

Похоже, выхода нет.

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

Дважды нажать вкладку? Или вы пытаетесь получить что-то вроде команды, а затем после команды указывается либо arg1, либо arg2?

ОТВЕТ:

Вы захотите отредактировать свой / и т.д. / inputrc и добавьте где-нибудь следующую строку:

"\C-i": menu-complete 

Затем запустите эту команду, чтобы сразу внести изменения:

#: привязать -f / etc / inputrc

К сожалению, я не вижу способа ограничить его количеством вариантов, но именно так вы можете переключать его поочередно, нажимая клавишу табуляции.

Ссылка:independentchaos.com