我想插入一个操作符,例如i手动插入我的宏寄存器.所以,如果我想插入i运算符(在光标后插入),我这样做:
:let @x="\ihello\n"
x多次执行宏时,例如3@x我得到这个结果:
hello
ihello
ihello
Vim认可了这条新线\n.但只承认\i一次.对于剩余的行,vim将命令打印\i为字符串'i'.
如何插入vim命令(i用于插入,<esc>转义,删除等)?
\i不是命令.Vim只是将字符串解释"\i"为plain "i"(\i不是有效的转义序列).你的代码相当于:let @x = "ihello\n".
问题是你的宏进入插入模式i,但从不离开它,所以下一个i只是字面插入.这就像执行ii:第一个i开始插入模式,第二个i插入.(您可以通过执行@x以下操作来观察此行为:它将插入hello\n并使您处于插入模式.)
要修复宏,您需要Esc在字符串中放置一个字符.有关:h expr-string可用转义序列的列表,请参阅.两种可能性:
let @x = "ihello\n\e"let @x = "ihello\n\<Esc>"