所以这是我第一次尝试在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文件。
答案 0 :(得分:6)
:normal
命令不会解析特殊字符。您可能已经猜到,<esc>
实际上是作为五个不同的字符插入的。
您需要将它们包装在:execute
中,并在这些特殊字符上进行转义:
:exe "'<,'>norm 0i(\<esc>$a)"
执行此操作的替代方法(使用完整的缓冲区范围%
):
:exe "%norm I(\eA)"
-编写esc字符的另一种方式:%norm I(^[A)
-其中^[
是ctrl-v,然后是esc,以插入不需要解析的文字esc字符。 :%s/.*/(&)