ViまたはVimで一致するすべての行を表示/非表示にすることはできますか?ハイライトせずに、それらの行のみを表示します。
たとえば、Word the Word ERROR
というテキストがあります。 ERROR
を含む行のみを表示するにはどうすればよいですか?ERROR
を含まない行のみを表示するにはどうすればよいですか?
解決策はありますか削除すべての一致する行を削除せずに元に戻すだけですか?
:global
コマンドについて知っていますか?これはあなたが望むことをしますか?
:g/ERROR
そして反対の場合:
:g!/Error
または同等に:
:v/Error
ユースケースに応じた別のアプローチは、vimgrepとquickfixの結果を使用することです。次のことができます。
:vimgrep pattern %
は現在のファイルを検索し、最初の検索結果に移動します。さらに重要なことは、結果を「クイックフィックスリスト」に入れることです。
:copen
は、個別のクイックフィックスウィンドウでクイックフィックスリストを開きます。したがって、最後のvimgrepのすべての行を含む別のウィンドウが表示されます。クイックフィックスウィンドウ内でEnterキーを押すか、行をダブルクリックして、元のファイルの対応する行にジャンプできます。
:colder
を使用すると、古いクイックフィックスリスト(古いvimgrepの結果)に戻ることができます。 :cnewer
は新しい検索結果に進みます。
:make
を実行すると、quickfixリストも更新されることに注意してください(エラーを修正するためにquickfixと呼ばれる理由です)。このため、「ロケーションリスト」と呼ばれるクイックフィックスリストの代替もあります。代わりに使用するには、:lvimgrep
を使用してから、c接頭辞付きコマンドではなくl接頭辞付きコマンド-:lopen
、:lolder
、:lnewer
を使用します。
もちろん、もっと多くのことができます。詳細については、:help quickfix
を参照してください。
PS、あなたは、あなたがあなたがあなたがあなたがあなたがあなたがあなたがあなたがあなたがあなたがあなたが行を削除してそれからそれらを取り消すアプローチを望まないと言ったと言った。しかし、あなたがg/ERROR
を答えとしてマークしたので、私はg!/ERROR/d
を行うことで迅速かつ汚い方法を指摘すると思いました。その後、u
を使用して簡単に元に戻すことができます。また、:set hlsearch
を実行して、:g
コマンドと一致するパターンを強調表示することもできます。
使用できます
:g/ERROR/
eRRORですべての行を印刷するには
また、私は何度も見たが使用しなかったVimプラグインがあります: foldsearch:指定されたパターンに一致しない行を折り畳みます
これを行う最良の方法は、->
:vimgrep /something/g % | copen
これにより、キーワードに一致するリストが開き、quickfixウィンドウに一致した行のみが表示されます。
:vimgrep /something/g % | copen
素晴らしい作品。また、:g/<pattern>/d
を使用して、パターンのある行を削除できます。
おそらく、vip vim&/ pattern /のコマンドを意味し、/ pattern /を含む行を表示します(grepなど)。
たまたまfzf
を使用する場合は、次を使用できます。
:Lines
開いているすべてのファイル:BLines
オープンバッファのみ:Rg [pattern]
ripgrep
を使用