将命令粘贴到 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>
),以便将它们解释为各自的击键,而不是作为文字字符。
假设我在 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>
),以便将它们解释为各自的击键,而不是作为文字字符。