1

vim の検索コマンドを使用すると、カーソルを検索結果に対して相対的に配置できます。たとえば/hello/b+2、最初の にカーソルを置きますl

代替コマンドでそれを行うにはどうすればよいですか?

s/hello/b+2/_/    

動作しません。

検索文字列全体ではなく、その一部のみを置き換えるためにこれが必要です (具体的には、単語の最初の文字以外をすべて空白にするため)。

4

1 に答える 1

8

通常、次の 2 つのオプションがあります。他の正規表現エンジンと同様に、幅がゼロの一致 (ただし、構文は異なります):

:s/\(he\)\@<=llo/_/

またはvim固有の「ここで試合の開始を設定する」:

:s/he\zsllo/_/

. また、他のほぼすべての正規表現エンジンで同様に見える回避策があります。

:s/\(he\)llo/\1_/

: これは、変更されるべきではないテキストをキャプチャし、置換にそれを含めます。

于 2012-08-26T20:23:26.820 に答える