Як зробити так, щоб zsh завершення діяло більше, як баш завершення?


18

Я нещодавно перейшов з bash в zsh (для чого я використовую "oh my zsh"), але одне мене дратує:

Коли я натискаю клавішу вкладки, перше автозавершення заповнюється автоматично, і вам потрібно перейти через завершення, натискаючи вкладку кілька разів.

Це відрізняється від bash, де вам просто показали список завершених. Якщо всі доповнення мають однаковий префікс, то цей префікс заповнюється. Ви можете вибрати потрібний, продовжуючи набирати текст.

Я вважаю останнім кращим, оскільки це швидше набирати, ніж вибирати завершення, натискаючи вкладку кілька разів.

Чи є спосіб зробити так, щоб завершення zsh було більш схожим на bash?

Відповіді:


18
setopt noautomenu
setopt nomenucomplete

Вам потрібно обоє. Якщо ви потрапите на вкладку достатньо разів, ви отримаєте список доповнень, але він ніколи не додасть жодних символів до того, що ви ввели раніше.


4

Я не думаю, що це поведінка за замовчуванням, але ви можете вимкнути це за допомогою:

setopt +o menucomplete

Інші параметри , які впливають на цю поведінку по - різному ставляться: autolist, automenu, bashautolist, listambiguous. Детальніше див. У розділі "Завершення" man zshoptions. Ви можете додати цю команду до свого ~/.zshrcфайлу.

Ви можете налаштувати багато інших речей інтерактивно, виконавши:

autoload -U compinstall
compinstall

та дотримуючись підказок та меню.

У Bash, така поведінка контролюється шляхом зв'язування Tabз completeабо menu-completeв ~/.inputrc:

"\C-i": complete   # do list completion

або з підказки або в оболонці ~/.bashrc:

bind '"\C-i": menu-complete' # do menu completion

1
мета коментар: як ти змусив персонажа "вкладки" виглядати таким чином?
Хороша людина

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.