Подтвердить что ты не робот

Как сохранить макрос Vim, содержащий клавиши "Escape"?

Я использую следующий макрос Vim много (он помещает текущую строку в теги XML):

I<e>^[A</e>

Итак, я сохранил его в моем .vimrc

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

Но это не работает.
Часть ^[ означает "Escape", но она не понимается как таковая в .vimrc

Как сохранить этот макрос или любой макрос, содержащий "Escape"?

4b9b3361

Ответ 1

Попробуйте ввести escape с <Ctrl-v><Esc> в режиме вставки. См. :help i_CTRL-V в vim.

Ответ 2

Для макроса:

: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 для получения дополнительной информации.

Ответ 3

Если вы используете поведение Windows для vim, где Ctrl + V является командой Paste, эквивалентная последовательность Ctrl + Q

Ответ 4

Сегодня я обнаружил плагин vim под названием MARVIM (http://www.vim.org/scripts/script.php?script_id=2154).

Он способен хранить макросы и выполнять их позже с помощью ярлыков.

Ответ 5

Для удобства чтения вместо ^[ или ^M можно использовать правильные теги обозначений клавиш, такие как <Esc> или <CR>

Вам нужно было бы экранировать тег <Esc> с одиночными \ и использовать двойные кавычки вместо одинарных кавычек, что привело бы к "\<Esc>". Следующие примеры эквивалентны

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

Список всех ключевых обозначений можно найти, набрав :help key-notation или здесь.

Ответ 6

Сохранение макросов в виде простого файла без плагинов.

Имея, например, макрос м. В режиме вставки, например, в начале новой строки, введите 3 клавиши

ctrl-r ctrl-r m

макрос с escape-символами будет помещен в эту строку. (редактируется по мере необходимости) В другой строке название/комментарий. Если хотите, добавьте другие макросы, а затем сохраните этот файл, например: w my_vim_macros

Если вы хотите повторно использовать такой сохраненный макрос (ы): поместите курсор в начало строки макроса, затем нажмите 4 клавиши

"ху $

и ваш макрос (эта строка) будет восстановлен для регистрации x.

Ответ 7

Я отвечаю, что я делаю, чтобы добавить Escape в макрос.

Использование в редакторе vim

:let @a='iabcjj'

здесь я отображаю <ESC> в jj

файл .vimrc

imap jj <esc>