7

Существуют ли версии оболочки с более умным завершением вкладок?

Я хотел бы иметь возможность печатать

cd foo-<TAB>

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

cd foo-<TAB>
(1) foo-bar1  (2) foo-bar2  (3) foo-bad

Таким образом, после <TAB> Я бы 3 -го типа , и он будет считать меня к foo-bad В качестве альтернативы, использование клавиш со стрелками вместо ввода числа было бы хорошо.

2 ответа2

10

Вы можете включить в Bash menu-complete чтобы при каждом нажатии клавиши Tab проходить по записям в командной строке. Это не совсем то, что вы ищете. Если вы хотите попробовать это, сделайте это в командной строке:

bind '"\C-i": menu-complete'

Чтобы это сохранялось, добавьте это в ваш файл ~/.inputrc :

"\C-i": menu-complete

Zsh имеет функцию, которая позволяет использовать клавиши со стрелками для выбора записи. Добавьте это (или другой вариант) в ваш файл ~/.zshrc :

zstyle ':completion:*' menu select=0

Смотрите man zshcompsys и ищите «select =» (это будет в разделе menu "Стандартный стиль") для получения дополнительной информации.

В противном случае, в Bash вы можете написать функцию (или даже создать собственную функцию завершения), которая будет делать что-то на основе команды select . Это очень просто:

$ select a in x y z; do cd $a; done
1) x
2) y
3) z
#?

Тебе нужно было бы это конкретизировать, чтобы заставить делать то, что ты хочешь.

9

Вы уже используете нормальное завершение? пытаться

complete -d cd pushd rmdir

В вашей оболочке и посмотрите, достаточно ли она близка к тому, что вы хотите.

Вы также можете попробовать zsh, который имеет лучшее завершение, чем bash.

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