Есть ли способ с автоматическим завершением 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