将命令粘贴到 vim

Paste commands into vim

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

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

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

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

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

bar

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

:exe "norm ifoo\<ESC>:%s:foo:bar:g\<CR>"

如果我复制该行,打开一个新的 Vim 文档并粘贴,该行将出现在命令行中(屏幕底部)。然后,当我按下 Enter 时...

bar

...出现在文本文档中。


所以,这是正在发生的事情:

冒号“:”激活命令行,“exe”(命令execute的缩写)指示Vim执行以下操作引用字符串作为 Vim 脚本。

字符串以命令“norm”(命令normal的缩写)开始,它指示Vim将后面的文本视为它被输入 Vim。

另一件必要的事情是使用反斜杠 \ 转义非打印键标识符(<ESC><CR>),以便将它们解释为各自的击键,而不是作为文字字符。