使用捕获序列在 Vim 中替换

问题描述 投票:0回答:1

我的文本文件中有以下几行:

.abc(),
.def(),
.ghi(),
.jkl(),

我想把它们变成这个

.abc(abc),
.def(def),
.ghi(ghi),
.jkl(jkl),

我试过 :%s/.(\w+)(),/. ( ),/g 但它不会用。

vim vi
1个回答
0
投票

+
应该是
\+
,捕获组应该写成
\(...\)
:

:%s/\.\(\w\+\)(),/.\1(\1),/g

仅供参考

.
表示任何字符
\.
表示字面句号。

您可以使用

\v
(非常神奇)来改变哪些字符是文字字符哪些是元字符,这会将模式更改为:

:%s/\v\.(\w+)\(\),/.\1(\1),/g

:h /\v
:h /\(
:h /.

© www.soinside.com 2019 - 2024. All rights reserved.