É possível remover correspondências manualmente no modo grep?


9

Após a execução, (grep)o buffer grep aparece com correspondências. Algumas das correspondências não são relevantes e seria bom removê-las manualmente. Dessa forma, posso usar o buffer grep para armazenar apenas as correspondências relevantes para a investigação atual.

Isso é possível?

Respostas:


10

Absolutamente. E é extremamente útil fazer isso. M-x flush-linese M-x keep-linessão seus amigos, assim como apenas C-ketc.

(A primeira coisa que você precisa fazer é C-x C-q, naturalmente , tornar o buffer gravável.)


Se você usar a biblioteca Grep + ( grep+.el), então você tem estes comandos, que comentário remover linhas e alternar tal remoção: grepp-remove-comments, grepp-toggle-comments, que estão presos junto buffers grep para ;e M-;, respectivamente.

(O Grep + também fornece comandos que facilitam o uso de vários buffers grep: +( grepp-new-buffer), b( grepp-choose-buffer) e r( grepp-rename-buffer-to-last).)


Há também outros buffers que são só de leitura por padrão e que às vezes pode ser útil para usar C-x C-qe depois editá-los, em particular (IMHO), *Messages*, *Help*e *Colors*(de M-x list-colors-display). As informações costumavam ter um comando que permite editar o nó atual.

Infelizmente (IMHO), o Emacs geralmente se afastou desse uso, tornando-o mais difícil. Por exemplo, *Help*e os *Messages*buffers agora definem chaves em seus respectivos modos, o que significa que para editá-las normalmente, você precisa (1) mudar para outro modo ou (2) usar C-qpara poder inserir determinados caracteres.


11
Eu vou tão longe a ponto de dizer que esta resposta mudou minha vida.
Cammil 31/07/19

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

0

Se você é um usuário malvado, pode ter uma ligação como zww 'read-only-modeessa read-only-map. Desative read-only-modee use a evil-deletelinha (ou seja dd). É claro que isso não remove automaticamente todas as linhas como flush-lines, no entanto, se você deseja remover uma região inteira sem usar expressões regulares complexas, esse é seu amigo.


0

O winnow.el fornece um modo menor e prático, projetado para esse propósito, destinado ao uso em compilation-modebuffers (ou derivados, o que inclui grep-mode).

Ele permite que os atalhos de teclado equivalente a flush-linese keep-lines, e cuida do read-only-ness do texto para você.

Key   Function
x     winnow-exclude-lines
m     winnow-match-lines
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.