Setjmp
Setjmp

Reputation: 28382

Vim: Remap Ctrl-W in insert mode to behave as it does in normal mode

I would like Ctrl-W to allow me to switch windows even when I am in insert mode. How can I make this change?

My motivation is to not need to press escape before shifting windows.

Upvotes: 4

Views: 1216

Answers (1)

yolenoyer
yolenoyer

Reputation: 9445

For <c-w><c-j> (as an example), you can do:

inoremap <c-w><c-j> <esc><c-w><c-j>gi

Then you can repeat this kind of mapping for every command you use:

inoremap <c-w><c-k> <esc><c-w><c-k>gi
inoremap <c-w><c-w> <esc><c-w><c-w>gi
inoremap <c-w>+ <esc><c-w>+gi
inoremap <c-w>- <esc><c-w>-gi
...

If you choose this simple solution, then you can finally add this mapping to inhibit the native <c-w> key (= delete the last word):

inoremap <c-w> <nop>

More "smart" solutions could be written, but they would imply a bit more code.

Note 1: as noted in the comments, the mappings to choose depend on which mode you want to reach after the keystroke: the suffix gi in the commands above means that you want to go back to insert mode in the new window; but you can remove this suffix if you want to be in normal mode.

Note 2: the suffix gi could be simply i, depending on the case : see :h i and :h gi

Upvotes: 3

Related Questions