Zsh завершение, включение Shift-Tab

13

Когда zsh показывает вам меню возможных завершений, я бы хотел, чтобы я позволил мне использовать shift-tabдля доступа к предыдущим записям завершения - есть ли опция, которая контролирует, какой ключ используется для доступа к предыдущим записям завершения?

И если так, что мне нужно добавить в мой ~/.zshrc файл, чтобы настроить его.

Если это имеет какое-то значение, я в настоящее время могу перемещаться по меню завершения, используя клавиши со стрелками, но мне не нравится это делать, поскольку клавиши со стрелками кажутся неуместными и неудобными в использовании.

Алексей Магура
источник

Ответы:

13

Вы хотите привязать команду редактора reverse-menu-completeк menuselectраскладке клавиатуры.

bindkey -M menuselect '^[[Z' reverse-menu-complete

Я не уверен, насколько переносима escape-последовательность ^[[Z, поэтому вы можете проверить terminfo (5), чтобы узнать, существует ли способ использования $terminfoмассива для его правильной привязки.

Обратите внимание, что menuselectраскладка клавиатуры доступна после загрузки zsh/complistмодуля. Если вы настроили систему завершения с помощью compinstallэтого модуля, он обычно автоматически загружается при первом выполнении чего-либо. Чтобы иметь возможность добавить эту привязку к вашей ~/.zshrc, вам нужно сначала загрузить модуль туда вручную:

zmodload zsh/complist
llua
источник
^[[Zпока shift-tabна моем компьютере тоже, так что не беспокоится о том, что не является портативным; Спасибо. :)
Алексей Магура
1
При zshдобавлении bindkeyстроки в мой ~/.zshrcфайл я получаю следующую ошибку : ~/.zshrc:bindkey:190: no such keymap `menuselect'
Алексей Магура
2
Это было бы "${terminfo[kcbt]}".
Томас Дики