vim更换问题

时间:2012-10-19 07:08:28

标签: vim

我有一些如下所示的行:

aaa
bbb
ccc
ddd

我希望他们像这样改变:

aaa=$aaa
bbb=$bbb
ccc=$ccc
ddd=$ddd

所以我使用以下命令在vim中执行此操作,但是我收到了错误

:s/\(\^*\)/\1=\$\1/

我意识到\1在这里不能使用两次,那我该怎么办呢?

2 个答案:

答案 0 :(得分:4)

后退参考\1可以根据需要多次使用,但您还有其他问题。你的正则表达式应该是这样的:

:%s/^\(.*\)/\1=\$\1/

说明:%告诉vim替换所有行; ^作为行首的标记应该是正则表达式中的第一个字符,不应该被转义。 .*表示任意次数"任何字符"。但是,原始表达式\(\^*\)将查找文字字符^的任意数量的重复(包括无)。

答案 1 :(得分:4)

匹配整行的内容时,既不需要^锚点,也不需要通过\(...\)捕获。在替换中,您可以使用\0或缩短&。 (另外,你不需要逃离那里的$。)

:%s/.*/&=$&