を交換して多くの場合、私はこのようなvimの中で検索と置換したい:Vimの検索と効率
:%s/<search_pattern>/<search_pattern>_foo/g
は、私が置き換える値に<search_pattern>
を参照できるように、この構文は、より効率的にする方法はありますか?私はそれがグループ名/番号で参照して戻って同様の何かになると思っていますが、私はこれに関するドキュメントを見つけることができません。
を交換して多くの場合、私はこのようなvimの中で検索と置換したい:Vimの検索と効率
:%s/<search_pattern>/<search_pattern>_foo/g
は、私が置き換える値に<search_pattern>
を参照できるように、この構文は、より効率的にする方法はありますか?私はそれがグループ名/番号で参照して戻って同様の何かになると思っていますが、私はこれに関するドキュメントを見つけることができません。
は、交換中にマッチしたパターン表現するために&
文字を使用します。
:%s/<search_pattern>/&_foo/g
が交互にあなたが\0
を使用することができ、全体のマッチしたパターンのための後方参照である、など覚えやすいことがあります
:%s/<search_pattern>/\0_foo/g
よ、:help sub-replace-special
を参照してください。そして、@kevのおかげでuは、交換に__foo_によって置き換えられる\zs
を使用して、検索文字列の末尾に空のパターン、強制することができます:
:%s/<search_pattern>\zs/_foo/g
をこれは意味:__foo_で検索文字列の末尾を交換してください。
検索パターン全体に&
を使用することも、グループを使用してパターンの一部に一致させることもできます。使用:&
:
:%s/<search_pattern>/&_foo/g
これは、あなたが探しているものを達成するでしょう。何か必要があれば、もう少し複雑なグループを使用してください。グループを作成するには、検索パターンの一部を(エスケープされた)かっこで囲みます。 \n
で参照できます。n
はグループ番号です。例がそれをより良く説明するだろう。
あなたは次のファイルがあります。
bread,butter,bread,bread,bread,butter,butter,etc
あなたはbread and butter
にbread,butter
の任意のインスタンスを変更したい:
:%s/\(bread\),\(butter\)/\1 and \2/g
':%sの/ \ ZS/_foo/G'作品あまりにも。 –
kev