Come eliminare tutte le righe che NON contengono una determinata parola in Vim?


116

In vim posso eliminare tutte le righe che contengono la parola "prezzo" con questo

:g /price/d

Come posso eliminare tutte le righe che NON contengono la parola "prezzo"?


1
Questa domanda può essere migrata su vi.stackexchange.com ? Ho provato a contrassegnarlo per la migrazione ma non sono riuscito a capirlo.
Mu Mind,

@MuMind È un argomento qui, quindi non è necessario migrare . " Non migrare per motivi di migrazione. Eseguiamo la migrazione delle domande solo perché sono fuori tema sul sito originale . È perfettamente possibile che una domanda sia su argomento su più siti, ma non è un motivo per migrare altrove, a meno che il PO non richieda la migrazione. " Inoltre, solo i dipendenti SE possono migrare dopo 60 giorni ed è molto raro che lo facciano (nemmeno i moderatori possono migrare una vecchia domanda).
settembre 17-17

Risposte:


158

Puoi usare

:%g!/price/d

per eliminare ogni riga che non contiene "prezzo"


3
Sapevo che sarebbe stato facile ...
digitaljoel

35
:g!è anche noto come :v(affine a grep -v).
Chris Johnsen,

3
Che cosa %fa?
hippietrail,

4
%è un intervallo speciale in questo contesto che significa l'intero file. Vedere :help cmdline-ranges.
Heptite,

1
%è facoltativo poiché l'intervallo predefinito è l'intero buffer.
Stillanoob,


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.