Egal, ob Sie ein Systemadministrator oder ein Softwareentwickler sind, wenn Sie im Linux-Terminal arbeiten, werden Sie mit der Situation konfrontiert, dass Sie Textdateien im Terminal bearbeiten müssen.
Wenn Sie auf das Terminal beschränkt sind, müssen Sie einen der Befehlszeilen-Editoren wie Vim verwenden. Die meisten von uns sind an die GUI-Editoren gewöhnt, und dies verursacht ein Problem, da die Verwendung eines Befehlszeilen-Editors nicht dasselbe ist wie die Verwendung eines grafischen Texteditors wie Atom.
Es stehen mehrere Befehlszeilen-Texteditoren zur Verfügung, und Sie können jeden davon verwenden. Vim ist einer der beliebtesten Befehlszeilen-Texteditoren und Sie finden ihn auf jeder Standard-Linux-Distribution installiert. Aus diesem Grund wird Ihnen das Erlernen der Grundlagen von Vim sehr helfen.
Nun, dies ist keine umfassende Anleitung, um Sie zu einem Vim-Experten zu machen. Es ist ein umfassender Vim-Leitfaden, der Ihnen genug bieten soll, um Vim im Linux-Terminal zu überleben.
Ich hoffe, Sie haben Vim auf Ubuntu oder der von Ihnen verwendeten Linux-Distribution installiert.
Grundlegende Vim-Befehle, die Sie kennen sollten
Wenn Sie zuvor mit Vim gearbeitet haben, möchten Sie vielleicht einfach Ihre Erinnerungen auffrischen, indem Sie sich diesen Vim-Spickzettel ansehen:
Vim-Befehl | Beschreibung |
---|---|
ich | Einfügemodus aufrufen |
Esc | Befehlsmodus aktivieren |
x oder Del | Einen Charakter löschen |
X | Zeichen löschen ist Backspace-Modus |
du | Änderungen rückgängig machen |
Strg + r | Änderungen wiederholen |
jj | Eine Zeile kopieren |
dd | Eine Zeile löschen |
p | Fügen Sie den Inhalt des Puffers ein |
/ | Suchen und dann mit n und N durch die Übereinstimmungen blättern |
[[ oder gg | Zum Anfang einer Datei gehen |
]] oder G | Zum Ende einer Datei gehen |
:%s/foo/bar/gci | Alle Vorkommen suchen und durch Bestätigung ersetzen |
Esc + :w | Änderungen speichern |
Esc + :wq oder Esc + ZZ | Speichern und beenden Sie Vim |
Esc + :q! | Erzwingen Sie das Beenden von Vim, wobei alle Änderungen verworfen werden |
Sie können die obigen Befehle auch als PDF herunterladen. Laden Sie es herunter, drucken Sie es aus und bewahren Sie es zum schnellen Nachschlagen auf Ihrem Schreibtisch auf.
Basic Vim Commands Cheatsheet Linux Handbookvim-commands-cheatsheet-linux-handbook.pdf86 KB
Keine Sorge, ich werde diese grundlegenden Vim-Befehle auch im Detail erklären.
Die Vim-Modi verstehen
Bevor wir beginnen, informieren Sie uns über die Vim-Modi. Vim hat drei Modi:
- Befehlsmodus:Wenn Sie Vim starten, befinden Sie sich im Befehlsmodus. In diesem Modus können Sie sich über den Bildschirm bewegen, Text löschen und Text kopieren.
- Einfügemodus:Im Befehlsmodus können Sie keinen Text schreiben. Um Text in eine Datei zu schreiben (oder sagen wir mal Text einzufügen), gibt es einen speziellen Einfügemodus. Wenn Sie etwas in eine Datei schreiben wollen, müssen Sie in den Einfügemodus wechseln.
- Visueller Modus:Ähnlich wie der Befehlsmodus, aber hier können Sie die Pfeiltasten verwenden, um Text zeilenübergreifend auszuwählen (anstatt direkt an Wörtern und Zeilen basierend auf der Cursorposition zu arbeiten).
Sobald Sie die Vim-Modi kennen, sehen wir uns einige grundlegende Vim-Befehle für verschiedene Zwecke an.
In den Einfügemodus in Vim wechseln
Denken Sie immer daran, i steht für Einfügemodus. Sie drücken die Taste „i“, um in den Einfügemodus zu gelangen .
Wenn Sie in den Einfügemodus wechseln, sehen Sie – EINFÜGEN – am unteren Rand des Editor-/Terminal-Bildschirms. Dies zeigt an, dass Sie sich im Einfügemodus befinden.
Aber i ist nicht die einzige Möglichkeit, in den Einfügemodus zu gelangen. Es gibt mehrere andere Befehle, um den Einfügemodus in Vim aufzurufen. Die Cursorposition ist beim Aufrufen des Einfügemodus wichtig.
- i – Neuer Text erscheint vor dem Cursor
- a – Neuer Text erscheint nach dem Cursor
- I – Neuer Text erscheint am Anfang der aktuellen Zeile
- A – Nächster Text erscheint am Ende der aktuellen Zeile
- o – Eine neue Zeile wird nach der aktuellen Zeile erstellt
- O – Eine neue Zeile wird vor der aktuellen Zeile erstellt
Zurück zum Befehlsmodus in Vim
Sie starten im Befehlsmodus und wechseln in den Einfügemodus. Wenn Sie in den Befehlsmodus zurückkehren möchten, drücken Sie die Esc-Taste (Escape) .
Wenn Sie Ihren Text eingegeben haben, empfehle ich Ihnen, die Esc-Taste zu drücken, um in den Befehlsmodus zu gelangen. Auf diese Weise geben Sie keinen neuen Text unwissentlich und unfreiwillig ein. Tipp:Wenn Sie sich an nichts anderes erinnern können, denken Sie daran, „i“ für den Einfügemodus und die Esc-Taste für den Befehlsmodus zu drücken. Dies sollte ausreichen.
Umherbewegen in Vim
Wenn Sie sich in Vim befinden, können Sie Ihre Maus nicht verwenden, um auf einen bestimmten Punkt im Bildschirm zu klicken, wie normale Texteditoren oder Code-Editoren. Aus diesem Grund müssen Sie die Bewegungsbefehle zu einer bestimmten Zeile oder einem Wort oder einer Position in Vim kennen.
Vi/Vim-Puristen werden vorschlagen, die Tasten h, j, k und l zu verwenden, um sich nach oben, links, rechts und unten zu bewegen, wenn Sie sich im Befehlsmodus befinden. Obwohl dies sowohl für Vi- als auch für Vim-Editoren gilt, bevorzuge ich die Verwendung dieser seltsamen Tastenkombinationen nicht.
Wissenswertes:Als der Vi-Editor zum ersten Mal entwickelt wurde, hatten die meisten Tastaturen keine Pfeiltasten. Aus diesem Grund wurden h,j,k,l-Tasten für die Bewegung verwendet.
Ich benutze die Pfeiltasten, um mich in Vim zu bewegen. Es funktioniert auch gut, wenn Sie sich in Vim im Einfügemodus befinden. Das ist die Standardart, sich fortzubewegen, an die die meisten der neueren Generation gewöhnt sind.
Wenn Sie neu bei Linux oder Vim sind, können Sie sich für die Pfeiltasten entscheiden. Nichts passiert.
Wenn Sie sich jedoch etwas besser mit Vim auskennen möchten, sollten Sie sich vielleicht ein paar Vim-Shortcuts merken, um sich leicht auf dem Bildschirm zu bewegen. Einige meiner Lieblings-Vim-Bewegungsbefehle sind:
- H – Zum oberen Bildschirmrand bewegen. Beachten Sie, dass dies nicht immer bedeutet, zur ersten Zeile in der Datei zu wechseln. Es dient nur dazu, zum oberen Rand des sichtbaren Bildschirms zu gelangen.
- L – Bewegen Sie sich zum unteren Rand des Bildschirms. Beachten Sie, dass dies nicht immer bedeutet, zur letzten Zeile in der Datei zu wechseln. Es dient nur zum Bewegen zum unteren Rand des sichtbaren Bildschirms.
- M – In die Mitte des Bildschirms bewegen.
- [[ – Zur ersten Zeile der Datei wechseln. Sie können gg auch hier verwenden.
- ]] – Geht zur letzten Zeile der Datei. Sie können hier auch G verwenden.
- nG – Gehe zu Zeile Nummer n. Beachten Sie, dass Sie nichts auf dem Bildschirm sehen, während Sie die Zeilennummern eingeben.
Tipp:Sie können Zeilennummern in Vim anzeigen, indem Sie in den Befehlsmodus gehen und :set number eingeben
Wie Sie sehen können, wird es Ihnen mit diesen zusätzlichen Bewegungsbefehlen leichter fallen, sich in einer großen Textdatei zu bewegen. Sie können weitere Bewegungsbefehle lernen, wie { und } zum Vor- und Zurückbewegen von Absätzen, w zum Bewegen Wort für Wort usw.
Sie können auch „Repeater-Modifikatoren“ wie nG verwenden, die Sie gerade mit den meisten Befehlen in Vim gesehen haben. Wenn Sie beispielsweise 5w verwenden, werden 5 Wörter verschoben. Wenn Sie 6H verwenden, wird es in die 6. Zeile von oben auf dem Bildschirm verschoben.
Repeater-Modifikatoren funktionieren auch mit „i“, und hier machen viele Leute Fehler. Wenn Sie versehentlich eine Zahl wie 7 gedrückt haben, bevor Sie „i“ gedrückt haben, um in den Einfügemodus zu wechseln, wird der von Ihnen eingegebene Text siebenmal hinzugefügt. Sie werden es nicht sofort auf dem Bildschirm sehen, bis Sie mit dem Speichern des Dokuments beginnen.
Was also tun, wenn man so einen dummen Fehler macht? Rückgängig machen.
Macht Ihre Änderungen in Vim rückgängig
Wenn Sie in Vim einen Fehler gemacht haben, müssen Sie nicht ewig damit leben. Ich habe auch Leute gesehen, die in solchen Fällen den Editor verlassen haben, ohne zu speichern, was irgendwie lächerlich ist.
Mit Vim können Sie Ihre Änderungen rückgängig machen und wiederholen. Sie können Ihre Änderungen auch wiederholen. Es gilt natürlich alles in derselben Sitzung. Sobald Sie Ihre Änderungen gespeichert haben, können Sie sie nicht mehr rückgängig machen.
Um eine Änderung rückgängig zu machen, gehen Sie in den Befehlsmodus und drücken Sie die Taste „u“. Sie können die Taste mehrmals drücken, um mehrere Aktionen rückgängig zu machen.
Wenn Sie eine Änderung wiederholen möchten, drücken Sie im Befehlsmodus die Tastenkombination Strg+r. Sie können die Taste mehrmals drücken, um mehrere Wiederherstellungsaktionen auszuführen.
Löschen in Vim
Abgesehen davon, dass Sie Ihre Änderungen rückgängig machen möchten, möchten Sie möglicherweise auch Text aus der Datei löschen. In Vim können Sie immer die Entf-Taste zum Löschen eines Zeichens verwenden, aber es gibt einige Tastenkombinationen, um das Löschen in Vim besser handhaben zu können.
- x – Löscht das Zeichen an der aktuellen Cursorposition wie eine Löschtaste
- X – Löscht das Zeichen vor der aktuellen Cursorposition wie eine Rücktaste. Beachten Sie, dass die Rücktaste selbst in Vim nicht funktioniert.
- dw – Wort löschen. Tatsächlich wird von der aktuellen Cursorposition bis zum Ende des aktuellen Wortes plus dem Leerraum danach gelöscht.
- dd – Aktuelle Zeile löschen.
- d$ – Löschen von der aktuellen Cursorposition bis zum Ende der Zeile.
- dG – Löschen von der aktuellen Cursorposition bis zum Ende der Datei.
Hinweis:Es gibt keine Ausschneidebefehle in Vim, denn wenn Sie etwas löschen, wird der gelöschte Text in den Puffer gestellt. Mit anderen Worten, Löschbefehle sind Ausschneidebefehle.
Kopieren und Einfügen in Vim
Sie fragen sich vielleicht, wie Sie in Vim kopieren und einfügen. Dies ist ein berechtigtes Anliegen, da Sie die Texte nicht immer eingeben werden.
Es gibt zwei Arten von Kopieren und Einfügen in Vim. Eines, das sich mit dem Puffer befasst, und eines, das sich mit dem „externen“ Text befasst.
Wenn Sie sich im Befehlsmodus befinden, können Sie entweder Ihre Linux-Terminal-Shortcuts zum Kopieren des Textes oder die folgenden Tastenkombinationen zum Kopieren von Text verwenden:
- yw – Wort kopieren. Tatsächlich kopiert es von der aktuellen Cursorposition bis zum Ende des aktuellen Wortes plus dem Leerraum danach.
- yy – Aktuelle Zeile kopieren.
- y$ – Kopieren von der aktuellen Cursorposition bis zum Ende der Zeile.
- yG – Kopieren von der aktuellen Cursorposition bis zum Ende der Datei.
Angenommen, Sie haben einen der oben beschriebenen Löschbefehle verwendet. Der gelöschte Text wird in den Puffer gestellt. Sie können diesen Text mit diesen beiden Einfügebefehlen aus dem Puffer einfügen:
- p – Fügt den Inhalt des Puffers vor der Cursorposition ein
- P – Fügt den Inhalt des Puffers nach der Cursorposition ein
Beachten Sie, dass wenn Sie eine ganze Zeile gelöscht haben, der Inhalt mit den oben erwähnten Einfügebefehlen vor oder nach der aktuellen Zeile platziert wird.
Die Einfügebefehle funktionieren nur mit dem Vim-Puffer. Was ist mit dem Text, den Sie aus einer anderen Datei kopiert haben? In diesen Fällen können Sie die standardmäßigen Tastenkombinationen zum Kopieren und Einfügen Ihres Linux-Terminals verwenden.
Im Standardterminal von Ubuntu und vielen anderen Linux-Distributionen wird Strg+Umschalt+C zum Kopieren und Strg+Umschalt+V zum Einfügen verwendet. In einigen anderen Terminals wird ein Text durch Auswählen kopiert und Sie können ihn mit der rechten Maustaste einfügen.
Was auch immer der Weg zum Kopieren und Einfügen in Ihrem Linux-Terminal sein mag, Sie können es auch in Vim verwenden. Stellen Sie nur sicher, dass Sie sich für diese Art des Kopierens im Einfügemodus befinden.
Suche nach Text in Vim
Das Auffinden eines bestimmten Textes ist eine wichtige Funktion eines Texteditors. Sie können in Vim mit „/“ nach Text in der Datei suchen.
Verwenden Sie im Befehlsmodus / und geben Sie dann Ihren Suchtext ein und drücken Sie die Eingabetaste. Unten links auf dem Bildschirm sehen Sie, was Sie gerade eingeben.
Es wird eine Vorwärtssuche nach dem gesuchten Begriff von Ihrer Cursorposition aus durchgeführt. Sie können auch „?“ verwenden und dann Ihren Suchbegriff eingeben und die Eingabetaste drücken, um eine Rückwärtssuche durchzuführen. Beachten Sie, dass bei der Suche zwischen Groß- und Kleinschreibung unterschieden wird.
Wenn es mehr als eine Übereinstimmung für Ihren Suchtext gibt, können Sie zur nächsten Position springen, indem Sie die Taste n drücken. Wenn Sie zum vorherigen Spiel zurückkehren möchten, drücken Sie N. Grundsätzlich können Sie mit n und N durch alle Spiele blättern. Tipp:Sie können die Option \c verwenden, um eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung in Vim auszuführen. Beispiel:/\cMeine_Suche
Suchen und Ersetzen in Vim
Vim bietet einen Ersatzbefehl (:s) zum Suchen und Ersetzen von Text. Es stützt sich beim Suchen und Ersetzen stark auf reguläre Ausdrücke (regex).
Sie können es auf folgende Weise verwenden:
:%s/foo/bar/g
Der obige Befehl ersetzt alle „foo“ durch „bar“ in der gesamten Datei. Das „g“ am Ende ist dafür verantwortlich, die Such- und Ersetzungsfunktion auf alle Übereinstimmungen zu erweitern. Andernfalls wird nur die erste Übereinstimmung ersetzt.
:s/foo/bar/g
Der Befehl ‘:s’ führt genau die gleiche Funktion wie oben aus, jedoch nur in der aktuellen Zeile und nicht in der gesamten Datei.
Standardmäßig wird bei der Suche zwischen Groß- und Kleinschreibung unterschieden. Um die Groß-/Kleinschreibung zu ignorieren, können Sie das Flag „i“ zusammen mit g verwenden.
:%s/foo/bar/gci
Ich habe hier ein zusätzliches ‚c‘-Flag hinzugefügt. Tatsächlich fühlen Sie sich vielleicht nicht wohl bei der Vorstellung, dass Ihre gesamten übereinstimmenden Texte innerhalb von Sekunden im gesamten Dokument ersetzt werden. Hier hilft das 'c'-Flag sehr. Mit diesem Bestätigungs-Flag wird Vim Sie bitten, zu bestätigen, ob Sie bei jeder Übereinstimmung eine Ersetzung durchführen möchten.
Im Bestätigungsmodus wird Ihnen die folgende Option angezeigt:Ersetzen durch UU (j/n/a/q/l/^E/^Y)?
Lassen Sie mich die Auswahlmöglichkeiten hier erläutern:
- y – JA, diese Übereinstimmung ersetzen
- n – NEIN, diese Übereinstimmung nicht ersetzen und zur nächsten übergehen
- a – ALLE Übereinstimmungen ersetzen
- q – BEENDEN ohne ein Streichholz zu ersetzen
- l – Ersetze dieses Streichholz und beende es, als wäre es das LETZTE Streichholz
- ^E – Scrollen Sie den Bildschirm nach oben
- ^Y – Den Bildschirm nach unten scrollen
Tipp:Wenn Sie sich nicht an alles andere erinnern können, denken Sie daran:%s/foo/bar/gci wird versuchen, alle Übereinstimmungen in der gesamten Datei durch Ihre Bestätigung zu ersetzen.
Speichern und Beenden von Vim
Sie haben gerade die Grundlagen der Vim-Befehle gelernt. Es ist an der Zeit, Ihre Arbeit zu speichern und Vim zu beenden. Um Vim zu speichern oder zu beenden, müssen Sie zuerst in den Befehlsmodus wechseln, indem Sie die Esc-Taste drücken. Und dann können Sie die folgenden Optionen verwenden:
- :w – Änderungen speichern, aber nicht beenden
- :wq – Speichern und beenden
- :q – Just Quit (wenn Sie Änderungen nicht gespeichert haben, sehen Sie diese Warnung:E37:No write since last change (add ! to override))
- :q! – Beenden erzwingen (alle nicht gespeicherten Änderungen werden verworfen)
Laden Sie den Vim Command Cheat Sheet im PDF-Format herunter
Ich kann verstehen, dass es schwierig sein kann, sich an das zu erinnern, was Sie gerade gelernt haben, wenn Sie neu bei Vim sind. Aus diesem Grund habe ich eine Liste grundlegender vim-Befehle und ihrer schnellen Erklärung erstellt.
Sie können diesen Vim-Spickzettel im PDF-Format herunterladen, ausdrucken und zum schnellen Nachschlagen auf Ihrem Schreibtisch aufbewahren.
Laden Sie den Spickzettel für grundlegende Vim-Befehle herunter
Weitergehen mit Vim
Nun, Sie haben gerade alle Vim-Grundlagen gelernt, die Sie brauchen, um diesen schrecklich großartigen Texteditor zu überleben. Mit so viel Wissen können Sie Text lesen, Text suchen und einige grundlegende Bearbeitungen in Vim vornehmen. Dies wird ausreichen, um Ihnen eine Panik zu ersparen, sobald Sie auf die Idee kommen, einen Terminal-Texteditor wie Vim zu verwenden.
Sie sollten diese Seite mit einem Lesezeichen versehen, um das, was Sie hier über Vim gelernt haben, aufzufrischen. Sie können auch den vimtutor-Befehl verwenden. Bei den meisten Linux-Distributionen ist der Befehl vimtutor installiert. Wenn Sie Ihr Vim-Wissen auffrischen oder Vim-Befehle üben möchten, führen Sie einfach vimtutor in einem Terminal aus.
Wenn Sie Ihre Vim-Fähigkeiten auf die nächste Stufe bringen möchten, empfehle ich Ihnen dringend die Ressource Mastering Vim Quickly. Die Investition lohnt sich.
Ich hoffe, dieser Leitfaden hat Ihnen beim Einstieg in Vim geholfen. Wenn Sie Fragen oder Anregungen haben, hinterlassen Sie bitte einen Kommentar.