VIMは入力時に正規表現の一致を表示します


8

入力する/regexと、カーソルは一時的に最初の一致にジャンプし、すべての一致が強調表示されます。入力すると更新されます。代替の準備をしているときにこの動作を取得することは可能ですか?たとえば、複雑な正規表現:%s/\<regex\>/で作業している場合、トリガーを引いてすべてを変更する前に、何が一致しているかを知りたいと思います。それを行う方法はありますか?


それが検索で機能する方法で機能する場合、それは現在一致するものを強調表示することです。それを行う最善の方法を見つけましたか?
Anton Daneyko、2015年

回答:


12

最初に/(または)を使用して検索を入力すると、正規表現を調整できます(incsearchを使用しているため)。

すべてがうまくいったら、 'search'アイテムに2つのセパレーターを使用することで、前の検索パターン(今使用したもの)を代替コマンドで使用できます。

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

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

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

+1について教えてくれs//
スティーブン・ルー

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/


気に入ったのですが、一致するものが見つかる前に正規表現を完成させる必要があります。
John Berryman

0

さて、あなたの正規表現が一致するものを確認する短い方法は/、目的の正規表現を使用して検索を行うことです。入力中に最初の一致にジャンプしてマークアップします。それを試してください- vimあなたを失望させません。


確かに、それは私が質問で述べたことです。代用の準備が整い次第更新されることを願っています。あなたの解決策では、私は正規表現を試し、それをコピーして(どうやって?)、代わりにそれを使用する必要があります。それは十分ではありません。
ジョンベリーマン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.