Ответ 1
Попробуйте ввести escape с <Ctrl-v><Esc>
в режиме вставки.
См. :help i_CTRL-V
в vim.
Я использую следующий макрос Vim много (он помещает текущую строку в теги XML):
I<e>^[A</e>
Итак, я сохранил его в моем .vimrc
let @e='I<e>^[A</e>'
Но это не работает.
Часть ^[
означает "Escape", но она не понимается как таковая в .vimrc
Как сохранить этот макрос или любой макрос, содержащий "Escape"?
Попробуйте ввести escape с <Ctrl-v><Esc>
в режиме вставки.
См. :help i_CTRL-V
в vim.
Для макроса:
:let @e='^[I<e>^[A</e>'
Где ^[
это всего лишь один символ, образованный нажатием CTRL + V ESC (CTRL + Q ESC в Windows). Обратите внимание на побег прямо в начале макроса.
Смотрите :help c_CTRL-V
в Vim для получения дополнительной информации.
Для тех, кто попал в этот пост и ищет, как добавить ESC в карту, ответ будет другим.
Буквально наберите < E S C >, таким образом:
:nnoremap <Leader>E I<e><ESC>A</e><ESC>
Смотрите :help key-notation
в Vim для получения дополнительной информации.
Если вы используете поведение Windows для vim, где Ctrl + V является командой Paste, эквивалентная последовательность Ctrl + Q
Сегодня я обнаружил плагин vim под названием MARVIM (http://www.vim.org/scripts/script.php?script_id=2154).
Он способен хранить макросы и выполнять их позже с помощью ярлыков.
Для удобства чтения вместо ^[
или ^M
можно использовать правильные теги обозначений клавиш, такие как <Esc>
или <CR>
Вам нужно было бы экранировать тег <Esc>
с одиночными \
и использовать двойные кавычки вместо одинарных кавычек, что привело бы к "\<Esc>"
. Следующие примеры эквивалентны
:let @e='^[I<e>^[A</e>'
:let @e="\<Esc><e>\<Esc>A</e>"
Список всех ключевых обозначений можно найти, набрав :help key-notation
или здесь.
Сохранение макросов в виде простого файла без плагинов.
Имея, например, макрос м. В режиме вставки, например, в начале новой строки, введите 3 клавиши
ctrl-r ctrl-r m
макрос с escape-символами будет помещен в эту строку. (редактируется по мере необходимости) В другой строке название/комментарий. Если хотите, добавьте другие макросы, а затем сохраните этот файл, например: w my_vim_macros
Если вы хотите повторно использовать такой сохраненный макрос (ы): поместите курсор в начало строки макроса, затем нажмите 4 клавиши
"ху $
и ваш макрос (эта строка) будет восстановлен для регистрации x.
Я отвечаю, что я делаю, чтобы добавить Escape в макрос.
Использование в редакторе vim
:let @a='iabcjj'
здесь я отображаю <ESC>
в jj
файл .vimrc
imap jj <esc>