我想插入一个操作符,例如i
手动插入我的宏寄存器.所以,如果我想插入i
运算符(在光标后插入),我这样做:
:let @x="\ihello\n"
x
多次执行宏时,例如3@x
我得到这个结果:
hello
ihello
ihello
Run Code Online (Sandbox Code Playgroud)
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>"
归档时间: |
|
查看次数: |
28 次 |
最近记录: |