Vim 正则表达式的问题

Vim 正则表达式的问题

我有一个要以以下形式比较的变量列表

 acceptEncoding == copy.
 authorization == copy.
 cacheControl == copy.
 contentEncodin == copy.
 contentLength == copy.
...

我想把它变成

acceptEncoding == copy.acceptEncoding &&
authorization == copy.authorization &&
cacheControl == copy.cacheControl &&
contentEncodin == copy.contentEncoding &&
contentLength == copy.contentLength &&
...

在 vim 中使用 :%s。我使用了命令,%s/(.+) == copy\./\1 == copy.\1 &&/但它与任何实例都不匹配,但正则表达式似乎是正确的,并且在正则表达式伙伴/其他正则表达式应用程序中有效,vim :s 正则表达式有什么特殊之处导致它不起作用吗?我已经继续使用宏来完成它,但我想知道正则表达式失败的原因。

答案1

你需要逃跑( + ) &

%s/\(.\+\) == copy\./\1 == copy.\1 \&\&/

这应该产生:

acceptEncoding == copy.acceptEncoding &&
authorization == copy.authorization &&
cacheControl == copy.cacheControl &&
contentEncodin == copy.contentEncodin &&
contentLength == copy.contentLength &&
...

相关内容