Có thể loại bỏ các trận đấu bằng tay trong chế độ grep?


9

Sau khi chạy (grep)bộ đệm grep xuất hiện với các kết quả khớp. Một số trận đấu không liên quan và sẽ tốt hơn nếu xóa chúng bằng tay. Bằng cách này, tôi có thể sử dụng bộ đệm grep để chỉ giữ các kết quả khớp có liên quan đến cuộc điều tra hiện tại.

Điều này có thể không?

Câu trả lời:


10

Chắc chắn rồi. Và nó cực kỳ hữu ích để làm điều đó. M-x flush-linesM-x keep-lineslà bạn bè của bạn, cũng như chỉ là C-kvv

(Điều đầu tiên bạn cần làm là tất nhiên C-x C-q, để làm cho bộ đệm có thể ghi được.)


Nếu bạn sử dụng thư viện Grep + ( grep+.el) sau đó bạn có các lệnh này, mà dòng remove bình luận và chuyển đổi loại bỏ như: grepp-remove-comments, grepp-toggle-comments, được ràng buộc trong bộ đệm grep để ;M-;, tương ứng.

(Grep + cũng cung cấp cho bạn các lệnh giúp dễ dàng có nhiều bộ đệm grep: +( grepp-new-buffer), b( grepp-choose-buffer) và r( grepp-rename-buffer-to-last).)


Ngoài ra còn có bộ đệm khác mà chỉ đọc theo mặc định và có đôi khi nó có thể hữu ích để sử dụng C-x C-qvà sau đó chỉnh sửa chúng, đặc biệt (IMHO), *Messages*, *Help*, và *Colors*(từ M-x list-colors-display). Thông tin được sử dụng để thậm chí có một lệnh cho phép bạn chỉnh sửa nút hiện tại.

Thật không may (IMHO), Emacs nói chung đã tránh xa việc sử dụng như vậy, làm cho nó khó khăn hơn. Ví dụ, *Help**Messages*bộ đệm hiện đã xác định các khóa trong chế độ tương ứng của chúng, điều đó có nghĩa là để chỉnh sửa chúng một cách bình thường, bạn cần phải (1) thay đổi sang chế độ khác hoặc (2) sử dụng C-qđể có thể chèn một số ký tự nhất định.


1
Tôi sẽ đi xa để nói câu trả lời này đã thay đổi cuộc đời tôi.
cammil

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

0

Nếu bạn là một người dùng xấu xa, bạn có thể có một ràng buộc như thế zww 'read-only-mode, chuyển đổi đó read-only-map. Vô hiệu hóa read-only-modevà sau đó sử dụng evil-deletedòng (tức là dd). Tất nhiên, điều này không tự động xóa tất cả các dòng như flush-lines, tuy nhiên, nếu bạn muốn xóa toàn bộ một khu vực mà không sử dụng các biểu thức thông thường phức tạp, thì đây là bạn của bạn.


0

winnow.el cung cấp một chế độ nhỏ tiện dụng được thiết kế cho mục đích này, dành cho mục đích sử dụng trong compilation-modebộ đệm (hoặc dẫn xuất, bao gồm grep-mode).

Nó cho phép các ràng buộc chính tương đương flush-lineskeep-lines, và chăm sóc tính năng chỉ đọc của văn bản cho bạn.

Key   Function
x     winnow-exclude-lines
m     winnow-match-lines
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.