指令说:“写一个命令,将以“ F”或“ C”字符开头的每一行中的所有“-”字符更改为“ /”字符。”
我在Vim中尝试过此操作,但得到的是E488:尾随字符。 有什么建议么?谢谢。
:%s/^\(F|C\)/\-/\//g
答案 0 :(得分:4)
Vi中在所有匹配行中完成 的传统方式是使用:g
命令。因此,在您的情况下,这将是:
g/^[FG]/s#-#/#g
这意味着在以F
或G
开头的所有行上执行替换命令。请注意,由于您想使用/
作为替换字符,因此我一直在使用其他定界符#
。
答案 1 :(得分:2)
如果您在比赛或替换中需要使用斜杠,则最好使用另一个字符作为分隔符-逗号会起作用:force: true
这里,您还需要使用正向后断言:用斜杠替换以F或C开头的任何破折号。在vim中,这是使用%s,/,-,g
\@<=
更多信息::help pattern
答案 2 :(得分:0)
解决方案:
:g/^[FC]/s/\-/\//gc
说明:
^[FC]: Do replacements only in those lines which start with F or C.
\-: Look for -
\/: Replace with /
gc: Do the replacements interactively. (Change it to g for non-interactive mode).