GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So löschen Sie mehrere Zeilen in Vim

Wir alle machen Fehler. Fehler machen ist menschlich. Es ist auch wichtig, es zu verbessern.

Wenn Sie in Vim einen Fehler machen, können Sie ein Wort mit dw löschen im Normalmodus. Sie geben dd ein und es löscht die aktuelle Zeile.

Wenn Sie mehrere Zeilen in Vim löschen möchten, können Sie denselben dd Vim-Befehl verwenden, indem Sie ihm die Anzahl der Zeilen hinzufügen.

Also 10dd löscht 10 Zeilen unterhalb des Cursors (einschließlich der Zeile, in der sich der Cursor befindet).

Schauen wir uns genauer an, wie Sie in einem für seine Effizienz bekannten Editor eine oder mehrere Zeilen löschen können.

Einzelne Zeile löschen

Unten sind die Schritte zum Löschen einer einzelnen Textzeile in Vim:

  1. Rufen Sie den Normalmodus auf, indem Sie die Escape-Taste (Esc) drücken
  2. Stellen Sie sicher, dass sich Ihr Cursor auf der Zeile befindet, die Sie löschen möchten.
  3. Drücken Sie schnell dd

Dadurch wird die gesamte Zeile gelöscht, auf der sich Ihr Cursor befindet.

Wie Sie im GIF sehen können, bin ich in der ersten Zeile und führe den dd aus Befehl löschte nur die erste Zeile.

Anzahl der zu löschenden Zeilen angeben

Bevor Sie den dd verwenden Um eine Zeile zu löschen, können Sie eine Zahl davor angeben, um mehrere Zeilen auf einmal in Vim zu löschen.

Unten ist die Syntax:

:[num]dd

Wenn Sie Zahl anstelle von num angeben , Vim beginnt mit dem Löschen von Zeilen. Sie können sich das so vorstellen, als ob Vim den dd ausführt Befehl für num Mal.

Wie aus dem GIF hervorgeht, habe ich den Befehl 12dd ausgeführt (erscheint in der unteren rechten Ecke) und hat den Block von 12 Zeilen gelöscht.

Geben Sie einen Bereich von zu löschenden Zeilen an

Anstatt anzugeben, wie viele Zeilen von der aktuellen Zeile bis zum Ende gelöscht werden sollen, können Sie Vim einfach mitteilen, ab welcher Zeile er mit dem Löschen beginnen soll und bis zu welcher Zeile.

Unten ist die Syntax, um eine Reihe von Zeilen zu löschen:

:[begin],[end]d

Lassen Sie uns diese Syntax aufschlüsseln...

  • : (Doppelpunkt) gibt an, dass es sich um einen Vim-Befehl handelt.
  • begin teilt Vim mit, ab welcher Zeile er beginnen soll
  • end sagt Vim, was die letzte zu löschende Zeile ist
  • d der Löschbefehl in Vim

Darüber hinaus sind unten die Zeichen aufgeführt, die verwendet werden, um den Bereich anzugeben (verwendet für „Beginn“ und „Ende“):

  • . (aktuelle Zeile)
  • $ (letzte Zeile in der Datei)
  • % (alle Zeilen)

Um von einigen Beispielen zu lernen, werfen wir einen Blick darauf.

  • :10,45d - Von Zeile 10 bis Zeile 45 löschen
  • :.,$d - Von der aktuellen Zeile bis zur letzten Zeile löschen
  • :.,1d - Von der aktuellen Zeile bis zum Anfang der Datei löschen
  • :dgg - Von der aktuellen Zeile bis zum Anfang der Datei löschen

Wie Sie in diesem GIF sehen können, bin ich zwar in Zeile 31 und habe :10,29d eingegeben und es löschte Zeilen von 10 bis 29.

Alle Zeilen löschen

Wie bereits erwähnt, ist der % Das Symbol wird verwendet, um den Bereich vom Anfang bis zum Ende der Datei anzugeben, im Wesentlichen alle Zeilen.

Das heißt, um alle Zeilen einer Datei in Vim zu löschen, müssen Sie :%d verwenden Befehl.

Löschen Sie Zeilen, die einem bestimmten Muster entsprechen

Abgesehen von all diesen Vim-Zaubereien, wussten Sie, dass Sie Zeilen löschen können, die einem bestimmten Muster entsprechen?

Nun, Sie können, und hier ist die Syntax.

:g/PATTERN/d

Um das Gegenteil davon zu tun, indem Sie die Zeilen löschen, die nicht dem angegebenen Muster entsprechen, können Sie die unten angegebene Syntax verwenden.

:g!/PATTERN/d

Wenn wir dies aufschlüsseln, erhalten wir die folgenden Elemente:

  • g - global suchen (d. h. die gesamte Datei)
  • ! - Reverse-Match
  • PATTERN - das passende Muster
  • d - Löschbefehl

Wenn Sie den folgenden Befehl in Vim ausführen, werden alle Zeilen entfernt, die das Muster "extern Crate" in der Zeile haben.

:g/extern\ crate/d

Alle leeren Zeilen löschen

Um leere Zeilen zu löschen, ist es notwendig, Regex für den Musterabgleich zu verwenden. Unten ist der Befehl zum Löschen von Leerzeilen:

:g/^$/d

In Regex der ^$ Muster bedeutet jede Zeile, die mit einem Zeilenumbruch beginnt, im Wesentlichen eine leere Zeile.

Schlussfolgerung

Dieser Artikel geht ausführlich darauf ein, wie Sie Zeilen in Vim löschen können. Hier ist eine kurze Zusammenfassung dessen, was Sie in diesem Artikel gelernt haben. Fühlen Sie sich frei, es zu speichern und auf Social Media zu teilen:

Wenn Sie daran interessiert sind, mehr als nur die Vim-Grundlagen zu lernen, empfehle ich dringend, dieses Programm von Jovica Ilic zu verwenden.


Linux
  1. Wie fügt man mehrere Zeilen an eine Datei an?

  2. Wie zeige ich Zeilennummern in vi/vim an?

  3. So löschen Sie alle Zeilen einer Datei in Vim

  4. VIM:wie man unter Ubuntu zur genauen Zeile geht

  5. Wie verkettet man mehrere Ausgabezeilen zu einer Zeile?

So finden Sie die längste(n) Zeile(n) in einer Datei in Linux

Wie beendet man Vim? Mehrere Möglichkeiten zum Beenden des Vim-Editors

So kommentieren Sie mehrere Zeilen gleichzeitig im vim-Editor mit 3 Methoden

So zeigen oder verbergen Sie Zeilennummern in Vim

Wie lösche ich mehrere Ordner parallel?

Wie bearbeite ich vorherige Zeilen in einem mehrzeiligen Befehl in Bash?