Как удобно переключиться в командный режим vi в командной строке zsh?


22

В vi я назначил jj для перехода, чтобы иметь возможность переключаться в командный режим без использования надоедливой клавиши escape. Теперь я хочу иметь то же самое для редактирования командной строки, для которого я использую vi-mode. Я уже нашел следующее решение:

bindkey '^j' vi-cmd-mode

позволяет вам переключиться с control-j в командный режим. Все еще ищу решение без клавиш-модификаторов, таких как «jj» или что-то подобное.


4
Почему бы просто не переназначить Caps Lock на Escape?
Кириас

Ответы:


30

Примечание. Вам следует обратить внимание на man zshzleмножество полезных свойств настройки bindkeyи эмуляции GNU readline.

Это, как я сопоставляются jjс Esc:

bindkey -M viins 'jj' vi-cmd-mode

Если вы заинтересованы в различении режима вставки и обычного режима, вы можете попробовать предложение, упомянутое здесь Акирой.


Да! работает отлично. большое спасибо!
Eman Resu

Есть ли какие-либо предпосылки, которые необходимо выполнить, прежде чем это сработает в zsh? Или способы отладки привязок клавиш? После вставки этой команды ничего не происходит. Джей все еще не работает.
UltraMaster

5
Я установил KEYTIMEOUT слишком низко, это было причиной.
UltraMaster

@Ultramaster делает замечательную мысль. Если вы уже устанавливаете KEYTIMEOUT для скорости, я бы порекомендовал> = 20 миллисекунд. Такие какexport KEYTIMEOUT=20
ремесло
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.