Vim在Visual行中正常编辑无法正常工作?

时间:2018-08-13 17:11:40

标签: vim

所以这是我第一次尝试在vim中进行视觉线编辑。我有几句话如下

cat
dog

,我想用方括号将它们包围(不使用Surround.vim)以进行学习。视觉选择后我使用的命令如下

:'<,'>norm 0i(<esc>$a)

还有

:'<,'>norm 0i(<C-v><esc>$a)

问题是vim似乎也可以打印出来,而我得到的输出是

(<esc>$a)cat
(<esc>$a)dog

任何有关我可能会出错的提示都将不胜感激。

  

还值得注意的是,我正在使用vim -u NONE运行vim,因此不会加载vimrc文件。

1 个答案:

答案 0 :(得分:6)

:normal命令不会解析特殊字符。您可能已经猜到,<esc>实际上是作为五个不同的字符插入的。

您需要将它们包装在:execute中,并在这些特殊字符上进行转义:

:exe "'<,'>norm 0i(\<esc>$a)"

执行此操作的替代方法(使用完整的缓冲区范围%):

  1. :exe "%norm I(\eA)"-编写esc字符的另一种方式
  2. :%norm I(^[A)-其中^[是ctrl-v,然后是esc,以插入不需要解析的文字esc字符。
  3. :%s/.*/(&)