Сделать заполнение табуляции BASH первым в матче?

11

Есть ли способ заставить BASH заполнить первое совпадение при нажатии клавиши TAB, вроде командной строки Windows?

(По-прежнему должен отображаться список совпадений, но он должен циклически проходить по ним, когда я продолжаю нажимать клавишу Tab.)

то есть цель здесь, чтобы быть в состоянии заполнить в любом матче с только клавишей TAB, учитывая достаточное количество прессы - как в Windows.

user541686
источник

Ответы:

15

Добавьте в свой .inputrcфайл следующее (точное местоположение зависит от системы):

"\C-i": menu-complete

Это сопоставляет TAB с полным меню, которое автоматически завершает первое совпадение.

Затем добавьте (или раскомментируйте) show-all-if-ambiguous, это показывает список возможных завершений при первом нажатии клавиши TAB.

Кроме того, вы можете установить полное меню за сеанс (без редактирования .inputrc), выполнив

bind '"\C-i" menu-complete'
человек, любящий учиться
источник
Нет. Это определенно не похоже на командную строку Windows. :-)
user541686
@Mehrdad: отредактировано, я надеюсь, что я получил это сейчас.
Филомат
+1 почти !!! Это то, что я хочу, но есть ли способ заставить это сделать это и отобразить меню, если оно неоднозначно? (Может быть, это слишком много, я знаю, но я надеюсь, что это возможно.)
user541686
@ Mehrdad: если это то, что вы хотите, примите это, это поможет людям быстро получить правильные ответы. Что касается вашего нового запроса сделать оба одновременно, я не верю, что это возможно, но кто знает? ... Однако вы можете привязать menu-completeк другой последовательности клавиш, например, "\M-s"для Meta+S, так что вы можете выбрать по желанию.
Филомат
1
Знаешь что? Кажется, что он на самом деле делает именно то, что я хочу: сначала показать меню, а затем переключаться между вариантами! Я не думаю, что видел это на первом компьютере, который я попробовал (возможно, я не обращал на это внимания), но, похоже, он работает отлично! :) (Edit: кажется, вам нужно и этот параметр, и show-all-if-ambiguous чтобы он работал)
user541686
4

Хотя я не знаю, как заставить эту функциональность работать с bash, zsh поставляется с настройками, которые вам нужны по умолчанию. Проверьте ой-мой-zsh и zsh .

Zsh обладает большинством функций bash с некоторыми дополнительными функциональными возможностями, такими как возможность навигации только с помощью вкладки и ввод!

Большинство дистрибутивов Linux поставляются с пакетом для установки zsh.

Крис Нэдлер
источник
1
... о боже мой! Это интересно, я посмотрю на это ... оно может или не может делать то, что мне нужно.
user541686
Рад, что смог помочь. Какой дистрибутив вы используете? Я могу дать вам более подробный ответ с руководством о том, как установить Zsh и о мой Zsh.
Крис Кнэдлер
+1 Я установил Zsh, это выглядит довольно круто! Если я не столкнусь с какими-либо проблемами, я могу принять это тоже, спасибо! :) (Кстати, я использую Ubuntu)
user541686
Высокий, если вы просто побежал APT-получить установку ЗШ , а затем побежал автоматической установки для о-мой-Zsh здесь , вы должны быть хорошо идти. Дайте мне знать, если вам нужна помощь в настройке.
Крис Кнэдлер