此命令
%s#^#/*
和这个命令
%s#$#*/
在ubuntu 14.04上的 vi 编辑器中正常工作,当我一个接一个地执行它们时。
我需要的是在一行中执行它们,如
%s#^#/* <bar> %s#$#*/
我还尝试 | 和; 和 CR 作为分隔符,并始终获取错误488尾随字符
答案 0 :(得分:2)
在我的vim 7.4补丁769中,这非常有效。
:%s/foo/FOO/ | %s/bar/BAR/
看起来你已经从你的替换中省略了最后的分隔符。 Vim不知道你的替换字符串在哪里结束而没有终止#
字符。当执行一个替换的常规命令时,如果找不到一个替换,vim会将命令的结尾视为终止分隔符。
例如,如果在命令的最后一次替换中省略了终止符,则它可以工作:
:%s/foo/FOO/ | %s#bar#BAR
最后一个关于你的潜艇的快速提示。您可以使用一些基本捕获组魔法替换单个替换文本中的一行。匹配整行并在替换中使用&
以重用匹配的文本:
:s#.*#/* & */