2

Я использую Zsh. Это хорошая оболочка, особенно для функции автозаполнения. Но когда я нажимаю вкладку, он всегда автоматически заполняется с первым вариантом завершения. Например, в моей папке два файла.

Mydata.txt
YourData.txt

Если я vim , пробел, а затем нажму tab , он автоматически заполняется Mydata.txt а не просто перечисляет их и ждет моего ввода. Я не люблю продолжать нажимать на вкладку, чтобы выбрать файлы. На несколько букв проще нажимать.

Я попытался пересмотреть .zshrc и установить

unsetopt MENU_COMPLETE

Но это не работает.

Кто-нибудь может дать мне несколько советов?

3 ответа3

4

Для справки, и, поскольку я не совсем уверен, как bash ведет себя точно, я приведу цитату из Руководства пользователя A по Z-Shell Питера Стивенсона, текущего сопровождающего zsh .

6.2.1 Неоднозначные дополнения

Самая большая группа опций имеет дело с тем, что происходит, когда завершение неоднозначно, иными словами, существует более одного возможного завершения. Ниже приведены семь соответствующих параметров, скопированных из FAQ; возможно много разных комбинаций:

  • с установленным NO_BEEP, этот раздражающий звуковой сигнал исчезает,
  • с NO_LIST_BEEP звуковой сигнал отключается только для неоднозначных завершений,
  • с установленным AUTO_LIST, когда завершение неоднозначно, вы получаете список, не нажимая CTRL+D ,
  • с установленным BASH_AUTO_LIST список появляется только во второй раз, когда вы нажимаете вкладку при неоднозначном завершении,
  • с LIST_AMBIGUOUS это модифицируется так, чтобы ничего не отображалось, если есть однозначный префикс или суффикс для вставки - это можно комбинировать с BASH_AUTO_LIST, так что там, где они применимы, вам нужно нажать три раза на вкладку для листинга,
  • с REC_EXACT, если строка в командной строке точно совпадает с одним из возможных дополнений, оно принимается, даже если есть другое завершение (то есть эта строка с добавлением чего-то еще), которое также совпадает,
  • с установленным MENU_COMPLETE, одно завершение всегда вставляется полностью, затем, когда вы нажимаете TAB оно меняется на следующее, и так далее, пока вы не вернетесь к тому, с чего начали,
  • с AUTO_MENU поведение меню появляется только при повторном нажатии клавиши TAB при неоднозначном завершении.

Вы, вероятно, хотите использовать (но, как я уже сказал, я не уверен, пожалуйста, поправьте меня)

setopt BEEP NO_AUTOLIST BASH_AUTOLIST NO_MENUCOMPLETE

где setopt NO_OPTION эквивалентно неустановленному unset OPTION .

2

Я нашел ответ сам. Если я установлю

zstyle ':завершение:: *:по умолчанию' меню нет выбора

Затем я могу ввести символы, чтобы выбрать параметры автозаполнения. Хотя я не могу выбрать по списку.

0

я использую

 setopt autolist

Это делает то, что вы хотите?

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