Чтобы переместить курсор в режиме вставки, я добавляю следующие карты ключей в мой .vimrc(я использую vim 7.3 в Sun OS)

inoremap <Alt-h> <Left>
inoremap <Alt-j> <Down>
inoremap <Alt-k> <Up>
inoremap <Alt-l> <Right>

Когда я нажимаю клавиши отображения, курсор перемещается правильно, но vim выходит из режима вставки и переключается в обычный режим, что не так с моим vim? Я также попробовал это с моим gvim на Windows, он работает хорошо. Я потерял какие-либо опции для ключей сопоставления?

2 ответа2

2

Некоторые эмуляторы терминала генерируют escape-последовательности для мета (alt) символов. Alt-A становится <esc>a . Обычно это проблема на машинах * nix.

Вы можете узнать больше деталей здесь:

http://vim.wikia.com/wiki/Fix_meta-keys_that_break_out_of_Insert_mode

1

Это не решение, но решение вашей проблемы может быть

inoremap <Alt-h> <c-o>h
inoremap <Alt-j> <c-o>j
inoremap <Alt-k> <c-o>k
inoremap <Alt-l> <c-o>l

:h i_CTRL-O => execute one command, return to Insert mode

Если это имеет ту же проблему (выход из режима вставки в ОС Sun), то следующее должно работать на кроссплатформенном [непроверенное утверждение].

inoremap <Alt-h> <esc>i
inoremap <Alt-j> <esc>ja
inoremap <Alt-k> <esc>ka
inoremap <Alt-l> <esc>la

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