6

I just got a Kinesis Advantage keyboard and want to remap Enter to Esc in insert mode in vim. I'm using iTerm2 as well.

Here's what I've got so far:

inoremap <CR> <Esc> inoremap jj <Esc> nnoremap <CR> i

On startup, this does not work: Enter enters insert mode, and in insert mode, jj exits insert mode. However, Enter does not exit from insert mode.

Then I reload my vimrc file:

:so $MYVIMRC

And viola, my Enter key now exits insert mode and everything works fine.

Any thoughts on why this would be happening?

Thanks

Mokubai
  • 89,133
  • 25
  • 207
  • 233
thekevinscott
  • 843
  • 3
  • 9
  • 14
  • 1
    It is likely you have something overriding the mapping. What does "`:verbose imap `" show? – Heptite Aug 24 '16 at 23:58
  • Aha, that's exactly what's happening. Before reloading, it reads: `i * pumvisible() ? "\" : "\" Last set from ~/vim/bundle/YouCompleteMe/autoload/youcompleteme.vim`, and after: `i * Last set from ~/.vimrc`. Thank you! Want to make an answer and I'll accept it? – thekevinscott Aug 25 '16 at 13:06

1 Answers1

5

This happens when you have a plugin or other script sourced after your mapping is defined that overrides your mapping. The easiest way to find out which is to run this command:

:verbose imap <cr>

This will tell you what the key sequence is mapped to, and what script defined the mapping.

Heptite
  • 19,383
  • 5
  • 58
  • 71