Терминалы отправляют клавиши со стрелками в виде последовательностей, начинающихся с Esc
.В Vim есть опция 'esckeys'
, которая позволяет клавишам, начинающимся с Esc
, работать в режиме вставки.Он делает это за счет фактической клавиши Esc
, которая немедленно реагирует, потому что Vim больше не знает, просто нажимаете ли вы Esc
или начинаете писать клавишу со стрелкой.
Вот что яхотелось бы иметь возможность делать в режиме вставки:
- Нажмите клавишу со стрелкой и курсор переместится в этом направлении, а
- Нажмите
Esc
и выйдитенемедленно вставьте режим.
У меня есть начало решения.Даже с :set noesckeys
я все еще могу сопоставить клавишу с <Up>
следующим образом:
imap q <Up>
Конечно, q
не является хорошей клавишей для повышения курсора.Вместо этого я хотел бы сопоставить мои клавиши со стрелками моего эмулятора терминала с чем-то, что не начинается с Esc
(как некоторые случайные символы Юникода, которые я никогда не наберу), а затем imap
с указаниями в Vim.
Проблема в следующем: когда я покидаю Vim, мои клавиши со стрелками перестают работать.Только Vim знает, что они значат сейчас.
Я работаю внутри tmux внутри iTerm2.Есть ли способ сделать такую привязку вживую только в одной панели tmux?Или заставить Vim сообщить tmux, что он должен использовать сумасшедшие привязки клавиш со стрелками во время работы?Любые другие идеи?
(Кстати, я был бы рад просто не использовать клавиши со стрелками в режиме вставки вообще сам, но я соединяюсь с людьми, которые ожидают, что они будут работать, и я хочу быть вежливой парой.)