VIMは、ユーザーが入力したときに正規表現の一致を確認します。

VIMは、ユーザーが入力したときに正規表現の一致を確認します。

と入力すると、/regexカーソルが最初の一致にしばらく移動し、すべての一致が強調表示されます。入力すると更新されます。交換の準備時にこの動作が発生する可能性はありますか?たとえば、複雑な正規表現を扱うときに:%s/\<regex\>/トリガーを引いて、すべてを変更する前に何が一致するのかを知りたいと思います。これを行う方法はありますか?

答え1

以下を使用して検索語を入力してください。/(または)まず、正規表現を調整できます(incsearchを使用しているため)。

すべてがうまくいけば使えますより早い検索項目で 2 つの区切り文字を使用して、代替コマンドからパターン (使用したばかりのパターン) を検索します。

/elephant                       " find the next elephant
:%s//rhino/gc                   " make then all rhinos!

もちろん、選択と範囲は通常どおり使用できます。

:1,15s,,cougar,g
:'<,'>s::tiger:

答え2

1つのオプションは、確認フラグを持つことができることですc

:%s;regex;replacement;gc

:h s_flags:

[c] Confirm each substitution.  Vim highlights the matching string.  You can type:              
        'y'     to substitute this match
        'l'     to substitute this match and then quit ("last")
        'n'     to skip this match
        <Esc>   to quit substituting
        'a'     to substitute this and all remaining matches
        'q'     to quit substituting

grepコマンドを使用して、フィルタ処理された出力と強調表示されたソースファイルを表示することもできます。

:g/re/pまたは:g/re/

答え3

/まあ、正規表現が何と一致するかを確認する簡単な方法は、目的の正規表現で検索することです。入力すると、最初の一致に移動してタグを付けます。一度試してみてください。vimがっかりしません。

関連情報