Apakah mungkin untuk menghapus kecocokan secara manual dalam mode grep?

9

Setelah menjalankan (grep)buffer grep muncul dengan kecocokan. Beberapa pertandingan tidak relevan, dan sebaiknya dihapus secara manual. Dengan cara ini saya bisa menggunakan buffer grep untuk menampung hanya kecocokan yang relevan dengan investigasi saat ini.

Apakah ini mungkin?

cammil
sumber

Jawaban:

10

Benar. Dan sangat berguna untuk melakukan itu. M-x flush-linesdan M-x keep-linesteman-teman Anda, serta hanya C-kdll.

(Hal pertama yang perlu Anda lakukan tentu saja C-x C-q, untuk membuat buffer dapat ditulis.)


Jika Anda menggunakan perpustakaan Grep + ( grep+.el) maka Anda memiliki perintah-perintah ini, yang garis menghapus komentar dan beralih penghapusan seperti: grepp-remove-comments, grepp-toggle-comments, yang terikat dalam buffer grep untuk ;dan M-;masing-masing.

(Grep + juga memberi Anda perintah yang memudahkan untuk memiliki beberapa buffer grep: +( grepp-new-buffer), b( grepp-choose-buffer), dan r( grepp-rename-buffer-to-last).)


Ada juga buffer lain yang hanya-baca secara default dan yang kadang-kadang bisa berguna untuk menggunakan C-x C-qdan kemudian mengedit mereka, khususnya (IMHO), *Messages*, *Help*, dan *Colors*(dari M-x list-colors-display). Info yang digunakan bahkan memiliki perintah yang memungkinkan Anda mengedit simpul saat ini.

Sayangnya (IMHO), Emacs umumnya telah menjauh dari penggunaan seperti itu, membuatnya lebih sulit. Misalnya, *Help*dan *Messages*buffer sekarang mendefinisikan kunci dalam mode masing-masing, yang berarti bahwa untuk mengeditnya secara normal Anda perlu (1) mengubah ke mode lain atau (2) menggunakan C-quntuk dapat memasukkan karakter tertentu.

Drew
sumber
1
Saya akan melangkah lebih jauh dengan mengatakan bahwa jawaban ini telah mengubah hidup saya.
cammil
;-) ............
Drew
0

Jika Anda adalah pengguna jahat, Anda dapat memiliki ikatan seperti zww 'read-only-mode, sakelar itu read-only-map. Nonaktifkan read-only-modedan kemudian gunakan evil-deletebaris (yaitu dd). Tentu saja ini tidak secara otomatis menghapus semua baris seperti flush-lines, namun, jika Anda ingin menghapus seluruh wilayah tanpa menggunakan ekspresi reguler yang kompleks, maka ini adalah teman Anda.

Yuki
sumber
0

winnow.el menyediakan mode kecil kecil yang berguna yang dirancang untuk tujuan ini, dimaksudkan untuk digunakan dalam compilation-modebuffer (atau turunannya, yang termasuk grep-mode).

Ini memungkinkan binding utama yang setara dengan flush-linesdan keep-lines, dan menjaga teks read-only-ness untuk Anda.

Key   Function
x     winnow-exclude-lines
m     winnow-match-lines
phils
sumber