Как сделать автозаполнение терминала при наличии нескольких файлов / директорий?
Если у меня есть несколько каталогов, например:
afoo abar
иногда мой терминал будет отказываться от автозаполнения, когда я нажимаю tab (например, "cd a", затем tab), и вместо этого печатаю список каталогов. Иногда он даже издает шумный, раздражающий звук. Есть идеи, как сделать автозаполнение в подобных случаях? Например, он может показывать сначала abar, а затем afoo, если я снова нажму tab. Я видел, что это имеет место в Windows, или какое-то приложение в Ubuntu
4 ответа
Что-то, что спасает меня для жизни, - это циклично использовать возможности, а не показывать тупой список.
Как Баш использует readline
для его автозаполнения добавьте следующие строки в ~/.inputrc
Когда вы будете удовлетворены и тщательно протестируете приведенное ниже решение в течение нескольких дней / недель, вырежьте и вставьте (не копируйте!) Те же самые настройки из ~/.inputrc
в /etc/inputrc
который содержит общесистемные настройки, что делает его доступным для всех пользователей вашей системы (включая гостя).
Кодез:
# mappings to have up and down arrow searching through history:
"\e[A": history-search-backward
"\e[B": history-search-forward
# mappings to have left and right arrow go left and right:
"\e[C": forward-char
"\e[D": backward-char
# mapping to have [Tab] and [Shift]+[Tab] to cycle through all the possible completions:
"\t": menu-complete
"\e[Z": menu-complete-backward
затем exit
свой терминал (или удаленный терминал, как замазка) и откройте его снова...
Примеры:
Когда у вас есть 3 файла:
file1
,file2
а такжеfile3
и вы печатаете:e fTabTabTab
это будет проходить через:
e file1 e file2 e file3
и когда вы хотите вернуться назад, просто нажмите Shift + Tab
Когда вы печатаете:
very-complicated-command with lots of command line parameters
и в следующий раз, когда вам понадобится та же команда, вы просто наберете:
very↑
и он напечатает для вас:
very-complicated-command with lots of command line parameters
Это сэкономит вам массу времени в bash!;-)
После 1-й вкладки вам нужно вставить больше букв. Так что если вы введете
cd a
и нажмите Tab, вы ничего не получите, и после второй вкладки (сразу после) вы получите список имен, начинающихся с a
а затем нужно вставить f
чтобы он автоматически завершил остаток так
cd a
вкладкавкладкаf
вкладкавкладка
приведет к
cd afoo
Чтобы сделать это в Bash, добавьте поток в ваш файл bash:
# make tab cycle through commands after listing
bind '"\t":menu-complete'
bind "set show-all-if-ambiguous on"
bind "set completion-ignore-case on"
bind "set menu-complete-display-prefix on"
Прекрасно работает. (Взято отсюда , как указано в комментарии @muru).
Рис для Linux находится в бета-версии: https://fig.io/user-manual/linux
Он работает очень хорошо и имеет множество других функций. Ubuntu — один из поддерживаемых дистрибутивов.