2012-06-29 5 views
0

У меня есть меню завершения, настроенное в моем zsh. Он отлично работает, без проблем.zsh: завершение меню. Как разместить общую часть имен?

Теперь я хочу, чтобы мой ЗШ действовать так:

Допустим есть 3 файла в каталоге:

  1. somefile_first
  2. somefile_second
  3. somefile_third

Теперь, когда я нажимаю [TAB], я получаю меню завершения с первым файлом, помещенным в командной строке. Но я хочу, чтобы zsh завершила общую часть имен файлов (в этом примере это было бы somefile_), do не поместите что-нибудь еще после общей части, и позвольте мне перейти через меню завершения.

Как это сделать?

ответ

0

Я понимаю, что этот вопрос старый, но я наткнулся на него, ища тот же ответ. Вот что я узнал.

AFAIK при использовании меню завершения zsh всегда укажет выделенное завершение в командной строке. Однако вы можете сделать это менее поспешным.

unsetopt menucomplete 
setopt automenu 

Изменение поведения так

  • первого TAB завершает общую часть
  • вторых списки завершений без изменения командной строки
  • третьего начинает меню и завершает командную строку с подсвеченным завершением

Если вы не хотите, чтобы изменения в командной строке не были отменены, чем приманное меню:

unsetopt menucomplete automenu 

Это дает пошаговое завершение. Выполняется только общая часть и перечислены предложения.

+0

По какой-то причине ничего не произошло. – blackst0ne

+0

Добавляет ли 'autoload -Uz compinit' и' compinit' перед этими строками что-то менять? –

Смежные вопросы