我经常使用以下Vim宏(它将当前行放在XML标记内):
I<e>^[A</e>
Run Code Online (Sandbox Code Playgroud)
所以我将它保存到我的.vimrc中
let @e='I<e>^[A</e>'
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
该^[部分的意思是"逃避",但它不是这样理解的.vimrc
如何保存此宏或任何包含"Escape"的宏?
cat*_*try 35
尝试<Ctrl-v><Esc>以插入模式进入转义.见:help i_CTRL-Vvim.
Joh*_*web 18
^[是你的朋友.字面输入<ESC>,因此:
:let @e='^[I<e>^[A</e>'
Run Code Online (Sandbox Code Playgroud)
有关:help c_CTRL-V详细信息,请参阅Vim.
更新:
啊... :help key-notation在键映射(例如^[[测试])中工作但不在宏中,它们是字面扩展的.我刚试过并测试了这个:
:nnoremap <Leader>E I<e><ESC>A</e><ESC>
Run Code Online (Sandbox Code Playgroud)
其中:help c_CTRL-V仅仅是一个通过敲击形成焦炭CTRL+ VESC.请注意宏开头处的转义.
小智 7
出于可读性目的,可以使用正确的键符号标签,例如<Esc>or<CR>代替^[or^M
您需要使用<Esc>单引号转义标签\并使用双引号而不是单引号,这会导致"\<Esc>". 以下示例是等效的
:let @e='^[I<e>^[A</e>'
:let @e="\<Esc><e>\<Esc>A</e>"
Run Code Online (Sandbox Code Playgroud)
可以通过在此处:help key-notation键入或找到所有关键符号的列表。