将命令粘贴到vim中

时间:2015-03-07 14:45:41

标签: vim vi

假设我有一系列要在vim中运行的命令:

ifoo<ESC>:%s:foo:bar:g<CR>

当我将上面的内容粘贴到vim中时,这将是输出:

foo<ESC>:%s:foo:bar:g<CR>

如何将上述内容粘贴到vim中,以便我的结果成为:

bar

即。它将<ESC><CR>等视为按钮,而不仅仅是字符串中的字符部分。

1 个答案:

答案 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>\),以便将它们解释为各自的按键,而不是文字字符。