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

Arbeiten mit dem Vim-Editor (Text-Editor)

Wenn Sie im Befehlszeilenmodus arbeiten, möchten Sie sich vielleicht mit mindestens einem Texteditor vertraut machen, der in der Linux-Konsole funktioniert. Der vi-Editor ist der ursprüngliche Editor, der auf Unix-Systemen verwendet wird. Es verwendet den Konsolengrafikmodus, um ein Textbearbeitungsfenster zu emulieren, sodass Sie die Zeilen Ihrer Datei sehen, sich in der Datei bewegen und Text einfügen, bearbeiten und ersetzen können.

Während es wahrscheinlich der komplizierteste Editor der Welt ist (zumindest nach Meinung derer, die es hassen), bietet es viele Funktionen, die es seit Jahrzehnten zu einem Grundnahrungsmittel für Unix-Administratoren gemacht haben. Als das GNU-Projekt den vi-Editor in die Open-Source-Welt portierte, entschieden sie sich, einige Verbesserungen daran vorzunehmen. Da es nicht mehr dem ursprünglichen vi-Editor aus der Unix-Welt glich, benannten die Entwickler es auch um, in vi Improved oder Vim. Um das Leben des Systemadministrators einfacher zu machen, erstellen fast alle Linux-Distributionen einen Alias ​​namens vi, der auf das vim-Programm verweist:

# alias vi='vim'

Grundlagen von vim

Der vim-Editor arbeitet mit Daten in einem Speicherpuffer. Um den vim-Editor zu starten, geben Sie einfach die Datei ein, die Sie bearbeiten möchten:vim command (oder vi, wenn es einen Alias ​​gibt) und den Namen der Datei

# vi /etc/fstab

Wenn Sie vim ohne Dateinamen starten oder die Datei nicht existiert, öffnet vim einen neuen Pufferbereich zum Bearbeiten. Wenn Sie eine vorhandene Datei in der Befehlszeile angeben, liest vim den gesamten Inhalt der Datei in einen Pufferbereich, wo er zur Bearbeitung bereitsteht, wie unten gezeigt:

Der vim-Editor erkennt den Terminaltyp für die Sitzung und verwendet einen Vollbildmodus, um das gesamte Konsolenfenster für den Editorbereich zu verwenden. Das anfängliche vim-Bearbeitungsfenster zeigt den Inhalt der Datei (falls vorhanden) zusammen mit einer Meldungszeile am unteren Rand des Fensters. Wenn der Dateiinhalt nicht den gesamten Bildschirm einnimmt, platziert vim eine Tilde auf Zeilen, die nicht Teil der Datei sind.

Die Meldungszeile unten zeigt Informationen über die bearbeitete Datei an, abhängig vom Status der Datei und den Standardeinstellungen in Ihrer vim-Installation. Wenn die Datei neu ist, wird die Meldung [Neue Datei] angezeigt.

Der vim-Editor hat zwei Betriebsmodi:

  • Normaler Modus
  • Einfügemodus

Wenn Sie zum ersten Mal eine Datei zum Bearbeiten öffnen (oder eine neue Datei starten), wechselt der vim-Editor in den normalen Modus. Im normalen Modus interpretiert der vim-Editor Tastenanschläge als Befehle.

Im Einfügemodus fügt vim jede Taste, die Sie eingeben, an der aktuellen Cursorposition in den Puffer ein. Um in den Einfügemodus zu wechseln, drücken Sie die i-Taste. Um den Einfügemodus zu verlassen und in den normalen Modus zurückzukehren, drücken Sie die Esc-Taste auf der Tastatur.

Im normalen Modus können Sie den Cursor mit den Pfeiltasten im Textbereich bewegen (solange Ihr Terminaltyp von vim richtig erkannt wird). Die vim-Befehle beinhalten Befehle zum Bewegen des Cursors:

  • h um ein Zeichen nach links zu gehen
  • j um eine Zeile nach unten zu gehen (die nächste Zeile im Text)
  • k um eine Zeile nach oben zu gehen (die vorherige Zeile im Text)
  • l um ein Zeichen nach rechts zu gehen

Sich in großen Textdateien Zeile für Zeile zu bewegen, kann mühsam werden. Glücklicherweise stellt vim einige Befehle bereit, um die Dinge zu beschleunigen:

  • Bild nach unten (oder Strg+F ), um einen Bildschirm mit Daten vorwärts zu gehen
  • Bild nach oben (oder Strg+B ), um einen Datenbildschirm zurückzugehen
  • G um zur letzten Zeile im Puffer zu gehen
  • num G um zur Zeilennummer num im Puffer zu gehen
  • gg um zur ersten Zeile im Puffer zu wechseln

Der vim-Editor hat eine spezielle Funktion innerhalb des normalen Modus namens Befehlszeilenmodus. Der Befehlszeilenmodus bietet eine interaktive Befehlszeile, in der Sie zusätzliche Befehle eingeben können, um die Aktionen in vim zu steuern. Um in den Kommandozeilenmodus zu gelangen, drücken Sie im normalen Modus die Doppelpunkttaste. Der Cursor bewegt sich zur Nachrichtenzeile und ein Doppelpunkt erscheint, der darauf wartet, dass Sie einen Befehl eingeben. Innerhalb des Befehlszeilenmodus gibt es mehrere Befehle zum Speichern des Puffers in der Datei und zum Beenden von vim:

  • q zu beenden, wenn keine Änderungen an den Pufferdaten vorgenommen wurden
  • q! zu beenden und alle an den Pufferdaten vorgenommenen Änderungen zu verwerfen
  • w Dateiname, um die Datei unter einem anderen Dateinamen zu speichern
  • wq um die Pufferdaten in der Datei zu speichern und zu beenden

Daten bearbeiten

Im Einfügemodus können Sie Daten in den Puffer einfügen; Manchmal müssen Sie jedoch Daten hinzufügen oder entfernen, nachdem Sie sie bereits in den Puffer eingegeben haben. Im normalen Modus bietet der vim-Editor mehrere Befehle zum Bearbeiten der Daten im Puffer. Die folgende Tabelle listet einige allgemeine Bearbeitungsbefehle für vim auf.

Befehl Beschreibung
x Löscht das Zeichen an der aktuellen Cursorposition.
dd Lösche die Zeile an der aktuellen Cursorposition.
dw Das Wort an der aktuellen Cursorposition löschen.
d$ Löschen bis zum Ende der Zeile ab der aktuellen Cursorposition.
J Löschen Sie den Zeilenumbruch am Ende der Zeile an der aktuellen Cursorposition (verbindet Zeilen).
du Den vorherigen Bearbeitungsbefehl rückgängig machen.
ein Daten nach der aktuellen Cursorposition anhängen.
A Daten am Ende der Zeile an der aktuellen Cursorposition anhängen.
r char Ein einzelnes Zeichen an der aktuellen Cursorposition durch Zeichen ersetzen.
R-Text Überschreiben Sie die Daten an der aktuellen Cursorposition mit Text, bis Sie Escape drücken.

Bei einigen Bearbeitungsbefehlen können Sie auch einen numerischen Modifikator verwenden, um anzugeben, wie oft der Befehl ausgeführt werden soll. Zum Beispiel der Befehl 2x löscht zwei Zeichen ab der aktuellen Cursorposition und den Befehl 5dd löscht fünf Zeilen, beginnend mit der Zeile ab der aktuellen Cursorposition.

Eine Standardfunktion moderner Editoren ist die Möglichkeit, Daten auszuschneiden oder zu kopieren und sie dann an anderer Stelle im Dokument einzufügen. Der vim-Editor bietet eine Möglichkeit, dies zu tun. Das Ausschneiden und Einfügen ist relativ einfach. Sie haben bereits die Befehle gesehen, die Daten aus dem Puffer entfernen können. Wenn vim jedoch Daten entfernt, werden diese tatsächlich in einem separaten Register gespeichert. Sie können diese Daten mit dem Befehl p abrufen.

Sie können beispielsweise den Befehl dd verwenden, um eine Textzeile zu löschen, dann den Cursor an die Stelle im Puffer bewegen, an der Sie ihn platzieren möchten, und dann den Befehl p verwenden. Der Befehl p fügt den Text nach der Zeile an der aktuellen Cursorposition ein. Sie können dies mit jedem Befehl tun, der Text entfernt. Das Kopieren von Text ist etwas kniffliger. Der Kopierbefehl in vim ist y (für Ruck). Sie können dasselbe zweite Zeichen mit y verwenden wie mit dem d-Befehl (yw, um ein Wort zu ziehen, y$ zum Zeilenende ziehen). Nachdem Sie den Text gezogen haben, bewegen Sie den Cursor an die Stelle, an der Sie den Text platzieren möchten, und verwenden Sie den Befehl p. Der herausgezogene Text erscheint nun an dieser Stelle.

Das Ziehen ist insofern schwierig, als Sie nicht sehen können, was passiert ist, weil Sie den Text, den Sie ziehen, nicht beeinflussen. Sie wissen nie genau, was Sie gezogen haben, bis Sie es irgendwo einfügen. Aber es gibt noch eine weitere Funktion in vim, die Ihnen beim Reißen hilft. Der visuelle Modus hebt Text hervor, wenn Sie den Cursor bewegen. Sie verwenden den visuellen Modus, um Text auszuwählen, der zum Einfügen gezogen werden soll. Um in den visuellen Modus zu wechseln, bewegen Sie den Cursor an die Stelle, an der Sie mit dem Ziehen beginnen möchten, und drücken Sie v. Sie werden feststellen, dass der Text an der Cursorposition jetzt hervorgehoben ist. Bewegen Sie als Nächstes den Cursor, um den Text abzudecken, den Sie ziehen möchten (Sie können sogar Zeilen nach unten bewegen, um mehr als eine Textzeile zu ziehen). Während Sie den Cursor bewegen, hebt vim den Text im Bereich zum Ziehen hervor. Nachdem Sie den Text, den Sie kopieren möchten, abgedeckt haben, drücken Sie die Taste y, um den Yank-Befehl zu aktivieren. Jetzt, da Sie den Text im Register haben, bewegen Sie einfach den Cursor an die Stelle, an der Sie ihn einfügen möchten, und verwenden Sie das p Befehl.

Suche und Ersatz

Mit dem Suchbefehl vim kann man leicht nach Daten im Puffer suchen. Um einen Suchbegriff einzugeben, drücken Sie den Schrägstrich (/). Der Cursor geht zur Nachrichtenzeile und vim zeigt einen Schrägstrich an. Geben Sie den zu suchenden Text ein und drücken Sie die Eingabetaste. Der vim-Editor antwortet mit einer von drei Aktionen:

  • Wenn das Wort nach der aktuellen Cursorposition erscheint, springt es an die erste Stelle, an der der Text erscheint.
  • Wenn das Wort nicht nach der aktuellen Cursorposition erscheint, wird es am Ende der Datei bis zur ersten Stelle in der Datei umgebrochen, an der der Text erscheint (und zeigt dies mit einer Meldung an). Es erzeugt eine Fehlermeldung, die besagt, dass der Text nicht in der Datei gefunden wurde.
  • Um die Suche nach demselben Wort fortzusetzen, drücken Sie den Schrägstrich und dann die Eingabetaste, oder Sie können die Taste n für weiter verwenden.

Mit dem Ersetzungsbefehl können Sie im Text schnell ein Wort durch ein anderes ersetzen (ersetzen). Um zum Ersatzbefehl zu gelangen, müssen Sie sich im Befehlszeilenmodus befinden. Das Format für den Ersatzbefehl ist:

:s/old/new/

Der vim-Editor springt zum ersten Vorkommen des Textes alt und ersetzt ihn durch den Text neu. Es gibt einige Änderungen, die Sie am Ersetzen-Befehl vornehmen können, um mehr als ein Vorkommen des Textes zu ersetzen:

:s/old/new/g        ## to replace all occurrences of old in a line
:n,ms/old/new/g     ## to replace all occurrences of old between line numbers n and m
:%s/old/new/g       ## to replace all occurrences of old in the entire file
:%s/old/new/gc      ## to replace all occurrences of old in the entire file, but prompt for each occurrence


Linux
  1. Schalten Sie Ihren Linux-Terminal-Texteditor mit ed ein

  2. Linux-Grundlagen:Ein Anfängerleitfaden zur Textbearbeitung mit vim

  3. ViM Texteditor 101 Handbuch

  4. vim Tutorial mit Befehlsbeispielen

  5. E-Mail-Client mit Vim-Bearbeitung

So installieren Sie den Vim-Texteditor unter Debian 10

So installieren Sie den Vim-Texteditor unter CentOS 8

Wie installiere ich den VIM-Texteditor unter Ubuntu?

Top 5 der besten Linux-Texteditoren

Ist es möglich, einen Symlink mit einem Texteditor zu bearbeiten?

Text-/Log-Editor mit Auto-Refresh-Unterstützung