¿Es posible eliminar coincidencias manualmente en modo grep?

9

Después de ejecutar (grep)el buffer grep aparece con coincidencias. Algunas de las coincidencias no son relevantes, y sería bueno eliminarlas manualmente. De esta manera, puedo usar el búfer grep para contener solo las coincidencias que son relevantes para la investigación actual.

es posible?

cammil
fuente

Respuestas:

10

Absolutamente. Y es extremadamente útil hacer eso. M-x flush-linesy M-x keep-linesson tus amigos, así como solo C-ketc.

(Por supuesto C-x C-q, lo primero que debe hacer es hacer que el búfer se pueda escribir).


Si utiliza la biblioteca Grep + ( grep+.el) entonces tienes estas instrucciones, que quite las líneas de comentarios y alternar dicha eliminación: grepp-remove-comments, grepp-toggle-comments, que están atados en tampones grep a ;y M-;, respectivamente.

(Grep + también le da comandos que facilitan tener múltiples buffers grep: +( grepp-new-buffer), b( grepp-choose-buffer) y r( grepp-rename-buffer-to-last).)


También hay otros tampones que son de sólo lectura de forma predeterminada y que a veces puede ser útil usar C-x C-qy luego editarlos, en particular (mi humilde opinión), *Messages*, *Help*, y *Colors*(de M-x list-colors-display). La información solía tener incluso un comando que le permite editar el nodo actual.

Desafortunadamente (en mi humilde opinión), Emacs generalmente se ha alejado de ese uso, lo que lo hace más difícil. Por ejemplo, *Help*y las *Messages*memorias intermedias ahora definieron las teclas en sus respectivos modos, lo que significa que para editarlas normalmente necesita (1) cambiar a otro modo o (2) usar C-qpara poder insertar ciertos caracteres.

Dibujó
fuente
1
Iré tan lejos como para decir que esta respuesta ha cambiado mi vida.
cammil
;-) ............
Dibujó el
0

Si eres un usuario maligno, puedes tener un enlace como zww 'read-only-modeese, alternar read-only-map. Deshabilite read-only-modey luego use la evil-deletelínea (es decir dd). Por supuesto, esto no elimina automáticamente todas las líneas como flush-lines, sin embargo, si desea eliminar una región completa sin usar expresiones regulares complejas, entonces este es su amigo.

Yuki
fuente
0

winnow.el proporciona un pequeño y práctico modo menor diseñado para este mismo propósito, destinado a usarse en compilation-modebuffers (o derivados, que incluye grep-mode).

Permite combinaciones de teclas equivalentes a flush-linesy keep-lines, y se encarga de la lectura del texto por usted.

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