Vim-E488错误-搜索和替换命令中的结尾字符

时间:2019-04-23 03:59:41

标签: regex linux unix vim

指令说:“写一个命令,将以“ F”或“ C”字符开头的每一行中的所有“-”字符更改为“ /”字符。”

我在Vim中尝试过此操作,但得到的是E488:尾随字符。 有什么建议么?谢谢。

:%s/^\(F|C\)/\-/\//g

3 个答案:

答案 0 :(得分:4)

Vi中在所有匹配行中完成 的传统方式是使用:g命令。因此,在您的情况下,这将是:

g/^[FG]/s#-#/#g

这意味着在以FG开头的所有行上执行替换命令。请注意,由于您想使用/作为替换字符,因此我一直在使用其他定界符#

答案 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).