Wie lösche ich alle Zeilen, die in Vim KEIN bestimmtes Wort enthalten?


116

In vim kann ich damit alle Zeilen löschen, die das Wort "price" enthalten

:g /price/d

Wie kann ich alle Zeilen löschen, die NICHT das Wort "Preis" enthalten?


1
Kann diese Frage auf vi.stackexchange.com migriert werden ? Ich habe versucht, es für die Migration zu markieren, konnte es aber nicht herausfinden.
Mu Mind

@MuMind Es ist hier ein Thema, daher ist keine Migration erforderlich . " Migrieren Sie nicht um der Migration willen. Wir migrieren Fragen nur, weil sie auf der ursprünglichen Site nicht zum Thema gehören. Es ist durchaus möglich, dass eine Frage auf mehreren Sites zum Thema gehört, dies ist jedoch kein Grund für eine Migration es an anderer Stelle, es sei denn, das OP fordert eine Migration an. " Außerdem können nur SE-Mitarbeiter nach 60 Tagen migrieren, was sehr selten der Fall ist (nicht einmal Moderatoren können eine alte Frage migrieren).
8bittree

Antworten:


157

Sie können verwenden

:%g!/price/d

jede Zeile löschen, die nicht "price" enthält


3
Ich wusste, dass es einfach sein würde ...
digitaljoel

35
:g!ist auch bekannt als :v(verwandt mit grep -v).
Chris Johnsen

3
Was macht der %?
Hippietrail

4
%ist in diesem Zusammenhang ein spezieller Bereich, der die gesamte Datei bezeichnet. Sehen :help cmdline-ranges.
Heptite

1
%ist optional, da der Standardbereich den gesamten Puffer umfasst.
Stillanoob


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.