How to save a Vim macro that contains "Escape" key presses?

Try entering the escape with <Ctrl-v><Esc> in insert mode. See :help i_CTRL-V in vim.


For a macro:

:let @e='^[I<e>^[A</e>'

Where ^[ is just one char formed by hitting CTRL+VESC (CTRL+QESC on Windows). Note the escape right at the beginning of the macro.

See :help c_CTRL-V in Vim for more information.


For those who've landed on this post looking for how to add ESC to a mapping, the answer is different.

Literally type <ESC>, thus:

:nnoremap <Leader>E I<e><ESC>A</e><ESC>

See :help key-notation in Vim for more info.


For readability purpose, it's possible to use the proper key-notation tags such as <Esc> or <CR> instead of ^[ or ^M

You would need to escape the tag <Esc> with a single \ and use double quotes instead of single quotes which would result in "\<Esc>". The following examples are equivalent

:let @e='^[I<e>^[A</e>'
:let @e="\<Esc><e>\<Esc>A</e>"

A list of all key notations can be found by typing :help key-notation or here.

Tags:

Vim

Macros