4
此命令在一行中vi编辑器
%s#^#/*
和该命令
%s#$#*/
工作正常六编辑在Ubuntu 14.04执行两条指令,当我之后单独执行它们一个另一个。
我需要的是既喜欢
%s#^#/* <bar> %s#$#*/
我也试过一行执行它们|和;和CR作为分隔符,并始终得到错误488尾随字符
此命令在一行中vi编辑器
%s#^#/*
和该命令
%s#$#*/
工作正常六编辑在Ubuntu 14.04执行两条指令,当我之后单独执行它们一个另一个。
我需要的是既喜欢
%s#^#/* <bar> %s#$#*/
我也试过一行执行它们|和;和CR作为分隔符,并始终得到错误488尾随字符
在我的vim 7.4补丁769这个作品非常好。
:%s/foo/FOO/ | %s/bar/BAR/
它看起来像你从你的替代中省略了最后的分隔符。 Vim不知道你的替换字符串在哪里结束,没有终止的#
字符。当执行一个替换的通常命令时,如果找不到一个命令,vim会将命令的结尾视为终止分隔符。
:%s/foo/FOO/ | %s#bar#BAR
最后关于你的潜艇一个快速提示:
例如,它如果省略在命令的最后一个换人终止工作。你可以用一些基本的捕捉组魔术来包装一行文字。匹配整行并使用&
进行替换以重新使用匹配的文本:
:s#.*#/* & */
谢谢。您的快速提示是我正在寻找的。最终分隔符允许链接命令,但不能用于斜杠/插入。这:%s/foo/f/o/| :%s/bar/b/r /和这个:%s/foo/f/\/o/| :%s/bar/b/\/r /导致相同的错误488.如何正确地转义斜线? – qupear
@ user2661175:应该很好。我认为你最后一部分有一个错字;一个额外的斜线。这适用于我:':s/foo/f \/o/| S /酒吧/ B \/R /' – progo