Разница в поведении `<Esc>` и `inoremap jk <Esc>` в vim

Я только что установил Ubuntu 12.04 на новый компьютер и apt-get install[ed] vim и у меня возникло какое-то странное поведение с моим псевдонимом Esc – если я в режиме INSERT и я набираю клавишу Esc, я выхожу из режима INSERT и курсор перемещает один символ влево, как и ожидалось, но если я jk псевдоним jk , который я определил в своем .vimrc как inoremap jk <Esc> , я inoremap jk <Esc> из режима INSERT и курсор перемещает один символ вправо , на самом деле довольно сбивает с толку. Любые идеи относительно того, почему это так?

  • Получение vim для перехода на первую строку и вход в режим вставки при написании электронной почты с помощью mutt
  • Проверка орфографии в vim
  • vim: можно открыть зашифрованный файл с помощью cli?
  • Заголовки / исходные файлы C ++ в файле выбора
  • Есть ли способ сделать vim автоматически добавлением пробела в начале комментария?
  • lookbehind и использовать его с grep в Vi?
  • Экран GNU замедляет работу клавиши ESC Vim
  • Глобальная vim-подобная (hjkl) навигация с numlock & xmodmap?
  • 2 Solutions collect form web for “Разница в поведении `<Esc>` и `inoremap jk <Esc>` в vim”

    Я не думаю, что это из-за этого правила, что-то другое вызывает это. Если я создаю файл .vimrc с этим правилом в нем:

     $ more .vimrc inoremap jk <Esc> 

    Я получаю такое же поведение, как и ожидалось от обоих методов.

    Пример № 1 – esc

    Вызовите vim , перейдите в режим вставки , стрелка вправо 1 раз, нажмите Esc .

    ss of vim w / esc

    Пример # 2 – jk

    Вызовите vim , перейдите в режим вставки , стрелка вправо 1 раз, нажмите jk .

    ss vim w / jk

    Ответ был получен из ответа slm, который заключается в том, что причиной этого была не только правило. мое правило, в полном объеме , было на самом деле

     inoremap jk <Esc> " Recommended in http://learnvimscriptthehardway.stevelosh.com/chapters/10.html 

    Это не вызвало проблем с реализациями Vim, которые я использовал на Mac OS и Debian по какой-то причине, но два лишних символа пробела после Esc в правиле, до того как комментарий заставил курсор двигаться вперед на два пробела после выхода Режим INSERT .

    Linux и Unix - лучшая ОС в мире.