grepモードで手動で一致を削除することは可能ですか?


9

実行後(grep)、grepバッファーが一致して表示されます。一部の一致は関連がないため、手動で削除することをお勧めします。このようにして、grepバッファーを使用して、現在の調査に関連する一致のみを保持できます。

これは可能ですか?

回答:


10

もちろんです。それを行うことは非常に便利ですM-x flush-linesそしてM-x keep-linesあなたの友達だけでなく、ちょうどC-k等です。

(もちろんC-x C-q、最初に行う必要があるのは、バッファーを書き込み可能にするためです。)


ライブラリを使用する場合Grepの+をgrep+.el)あなたは、これらのコマンド、削除コメント行とこのような除去トグルを持っている: grepp-remove-commentsgrepp-toggle-comments、にはgrepバッファに結合している;M-;、それぞれ。

(Grep +には、複数のgrepバッファーを簡単に作成できるコマンドもあります:+grepp-new-buffer)、bgrepp-choose-buffer)、rgrepp-rename-buffer-to-last))。


そこデフォルトでは読み取り専用で、時々使用することが有用であり得る他のどのバッファもありC-x C-q、特に、その後、編集それら、(私見に)、 、*Messages**Help*および*Colors*(からM-x list-colors-display)。情報を使用してもあなたが現在ノードを編集することができますコマンドを持っています。

残念ながら(IMHO)、Emacsは一般にそのような使用から離れて、それを難し​​くしています。例えば、*Help*および*Messages*バッファ今定義され、それぞれのモードでのキー、手段編集に彼らは通常、あなたは他のモードまたは(2)の使用のいずれか(1)変更する必要があることをC-q特定の文字を挿入することができるようにします。


1
私はこの答えが私の人生を変えたと言うまで行きます。
cammil

;-) ............
Drew

0

悪意のあるユーザーであれば、のようなバインディングzww 'read-only-modeをトグルできますread-only-map。無効にread-only-modeしてからevil-delete回線を使用します(つまりdd)もちろん、これはのようflush-linesにすべての行を自動的に削除するわけではありませんが、複雑な正規表現を使用せずに領域全体を削除したい場合、これはあなたの友人です。


0

winnow.elは、この目的のために設計された便利な小さなマイナーモードを提供し、compilation-modeバッファー(またはを含む派生物)で使用することを目的としていますgrep-mode

これは、と同等のキーバインディングを可能flush-lineskeep-linesし、あなたのためのテキストの読み取り専用ネスの世話をします。

Key   Function
x     winnow-exclude-lines
m     winnow-match-lines
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.