1

:%s行のどこかで一致を見つけて、それを行に追加するために使用することは可能ですか?

次の文字列を例にとると、行の最後:s/\(value\)/\$\1/に追加するようなものを期待していましたが、インラインの前valueに追加するだけです$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 に答える