This thread解释了将vim宏保存到文件但我无法让它工作。我将以下宏存储在寄存器b中,我试图保存到我的rst.vim文件中:
let @b = '<Esc>bea**<Esc>`<i**<Esc>gvoo<Esc>e'
'...'中的所有内容都来自于使用"bp
从缓冲区粘贴宏。但当我关闭并重新打开仅包含句子The quick brown fox jumped over the moon
并输入fbv2e@b
的第一个文件时,这就是结果句子:
Thc>bea**<Esc>`<i**<Esc>gvoo<Esc>e quick brown fox jumped over the moon.
所以,我必须有一些我失踪的逃脱击键,但我找不到它们是什么。我尝试搜索谷歌和:help
类似的宏示例无济于事。我在搜索时缺少什么以及应该查找哪些条款?谢谢!
答案 0 :(得分:3)
正如一些人所暗示的,问题是<Esc>
实际上是<
,E
,s
,c
,>
。 Vim使用C-v <ESC>
在文本文件中生成转义。所以我在问题的:s/<Esc>/^[/g
行上运行了:let
。 请注意,^
,[
与^[
生成的C-v <Esc>
不同!
为了在几个月后让自己头疼,我将^[
切换为\e
。我必须确保用双引号包围宏,因为单引号不起作用。