Est-il possible de supprimer les correspondances manuellement en mode grep?

9

Après l'exécution, (grep)le tampon grep apparaît avec des correspondances. Certaines correspondances ne sont pas pertinentes et il serait bon de les supprimer manuellement. De cette façon, je peux utiliser le tampon grep pour ne conserver que les correspondances pertinentes pour l'enquête en cours.

Est-ce possible?

cammil
la source

Réponses:

10

Absolument. Et c'est extrêmement utile de le faire. M-x flush-lineset M-x keep-linessont vos amis, ainsi que juste C-ketc.

(La première chose que vous devez faire est bien sûr C-x C-qde rendre le tampon accessible en écriture.)


Si vous utilisez la bibliothèque Grep + ( grep+.el), vous avez ces commandes, les lignes de commentaires et de supprimer basculer un tel retrait: grepp-remove-comments, grepp-toggle-commentsqui sont liés dans des tampons à grep ;et M-;, respectivement.

(Grep + vous donne également des commandes qui facilitent la création de plusieurs tampons grep: +( grepp-new-buffer), b( grepp-choose-buffer) et r( grepp-rename-buffer-to-last).)


Il y a aussi d' autres tampons qui sont en lecture seule par défaut et qu'il peut parfois être utile d'utiliser C-x C-q, puis les modifier, en particulier ( à mon humble avis), *Messages*, *Help*et *Colors*(de M-x list-colors-display). Les informations avaient même une commande qui vous permet de modifier le nœud actuel.

Malheureusement (à mon humble avis), Emacs s'est généralement éloigné de cette utilisation, ce qui la rend plus difficile. Par exemple, *Help*et les *Messages*tampons définissent désormais les clés dans leurs modes respectifs, ce qui signifie que pour les modifier normalement, vous devez soit (1) passer à un autre mode ou (2) utiliser C-qpour pouvoir insérer certains caractères.

A dessiné
la source
1
J'irai jusqu'à dire que cette réponse a changé ma vie.
cammil
;-) ............
Drew
0

Si vous êtes un mauvais utilisateur, vous pouvez avoir une liaison comme zww 'read-only-modecelle-ci read-only-map. Désactivez read-only-modepuis utilisez la evil-deleteligne (c. dd-à-d.). Bien sûr, cela ne supprime pas automatiquement toutes les lignes comme flush-lines, cependant, si vous souhaitez supprimer une région entière sans utiliser d'expressions régulières complexes, alors c'est votre ami.

Yuki
la source
0

winnow.el fournit un petit mode mineur pratique conçu à cet effet, destiné à être utilisé dans les compilation-modetampons (ou dérivés, qui comprend grep-mode).

Il permet des raccourcis clavier équivalents à flush-lineset keep-lines, et prend soin de la lecture seule du texte pour vous.

Key   Function
x     winnow-exclude-lines
m     winnow-match-lines
phils
la source