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