vim更换问题

use*_*366 5 vim

我有一些如下所示的行:

aaa
bbb
ccc
ddd
Run Code Online (Sandbox Code Playgroud)

我想让它们像这样改变:

aaa=$aaa
bbb=$bbb
ccc=$ccc
ddd=$ddd
Run Code Online (Sandbox Code Playgroud)

所以我使用以下命令在vim中执行它,但是我收到了一个错误

:s/\(\^*\)/\1=\$\1/
Run Code Online (Sandbox Code Playgroud)

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

Jan*_*ary 4

反向引用\1可以根据需要多次使用,但还有另一个问题。你的正则表达式应该是这样的:

:%s/^\(.*\)/\1=\$\1/
Run Code Online (Sandbox Code Playgroud)

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