Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
是否可以使用:%s在一行中的某处查找匹配项,然后将其附加到该行?
:%s
以下面的字符串为例,我希望在行尾:s/\(value\)/\$\1/附加一些东西value,但它只是在inline$之前添加value
:s/\(value\)/\$\1/
value
$
演示字符串:
This value is too damn high!
预期输出:
This is too damn high!value
实际输出:
This $value is too damn high!
你可以走得又快又脏:
:s,\(.*\)\(value\)\(.*\),\1\3\2,
但可能有更清洁的方法来做到这一点。
对于查找和附加(如问题所述):
:s,\(.*\(value\).*\),\1\2,
在 Vim 中,\$是一个字面的美元符号。行尾匹配很简单$。您可以使用\1替换第一个匹配的组,并\0匹配整个匹配。因此:
\$
\1
\0
:s#.*\(value\).*#\0\1