1

是否可以使用:%s在一行中的某处查找匹配项,然后将其附加到该行?

以下面的字符串为例,我希望在行尾:s/\(value\)/\$\1/附加一些东西value,但它只是在inline$之前添加value

演示字符串:

This value is too damn high!

预期输出:

This is too damn high!value

实际输出:

This $value is too damn high!
4

2 回答 2

2

你可以走得又快又脏:

:s,\(.*\)\(value\)\(.*\),\1\3\2,

但可能有更清洁的方法来做到这一点。

对于查找和附加(如问题所述):

:s,\(.*\(value\).*\),\1\2,
于 2012-09-17T19:55:18.277 回答
2

在 Vim 中,\$是一个字面的美元符号。行尾匹配很简单$。您可以使用\1替换第一个匹配的组,并\0匹配整个匹配。因此:

:s#.*\(value\).*#\0\1
于 2012-09-17T19:56:31.530 回答