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.