假设我有一系列要在vim中运行的命令:
ifoo<ESC>:%s:foo:bar:g<CR>
当我将上面的内容粘贴到vim中时,这将是输出:
foo<ESC>:%s:foo:bar:g<CR>
如何将上述内容粘贴到vim中,以便我的结果成为:
bar
即。它将<ESC>
和<CR>
等视为按钮,而不仅仅是字符串中的字符部分。
答案 0 :(得分:3)
:exe "norm ifoo\<ESC>:%s:foo:bar:g\<CR>"
如果我复制该行,请打开一个新的Vim文档并粘贴,该行将出现在命令行中(屏幕底部)。然后,当我点击Enter ...
bar
...出现在文本文档中。
所以,这里发生了什么:
结肠&#34;:&#34;激活命令行,&#34; exe &#34; (命令execute
的缩写)指示Vim将以下引用的字符串计算为Vimscript。
字符串以命令&#34; norm &#34;开头。 (命令normal
)的缩写,指示Vim将以下文本视为输入到Vim中。
另一件必要的事情是使用反斜杠<ESC>
转义非打印密钥标识符(<CR>
和\
),以便将它们解释为各自的按键,而不是文字字符。