Erste Schritte mit Vim: Die Grundlagen
Ich erinnere mich an das allererste Mal, als ich Vim begegnete. Ich war Student an der Universität, und die Computer im Labor der Informatikabteilung waren mit Ubuntu Linux installiert. Obwohl ich schon vor meiner Studienzeit mit verschiedenen Linux-Varianten (wie RHEL) in Berührung gekommen war (Red Hat verkaufte seine CDs bei Best Buy!), war dies das erste Mal, dass ich das Linux-Betriebssystem regelmäßig benutzen musste, weil meine Kurse dies erforderten. Sobald ich anfing, Linux zu benutzen, begann ich mich, wie viele andere vor und nach mir, wie ein „echter Programmierer“ zu fühlen.“
1_xkcdcartoon.jpg
Echte Programmierer, von xkcd
Studenten konnten einen grafischen Texteditor wie Kate verwenden, der standardmäßig auf den Laborrechnern installiert war. Für Studenten, die zwar die Shell benutzen konnten, aber nicht an den konsolenbasierten Editor gewöhnt waren, war die beliebte Wahl Nano, der gute interaktive Menüs und eine ähnliche Erfahrung wie der grafische Texteditor von Windows bot.
Ich benutzte Nano manchmal, aber ich hörte großartige Dinge über Vi/Vim und Emacs und wollte sie wirklich ausprobieren (hauptsächlich, weil sie cool aussahen, und ich war auch neugierig, was so toll an ihnen war). Vim zum ersten Mal zu benutzen, machte mir Angst – ich wollte nichts vermasseln! Aber sobald ich den Dreh raus hatte, wurden die Dinge viel einfacher und ich konnte die mächtigen Fähigkeiten des Editors schätzen. Was Emacs angeht, nun, ich habe irgendwie aufgegeben, aber ich bin froh, dass ich bei Vim geblieben bin.
In diesem Artikel werde ich (basierend auf meiner persönlichen Erfahrung) gerade so viel über Vim erzählen, dass Sie mit ihm als Editor auf einem Linux-System auskommen können. Das wird Sie weder zu einem Experten machen noch auch nur an der Oberfläche vieler der mächtigen Fähigkeiten von Vim kratzen. Aber der Ausgangspunkt ist immer wichtig, und ich möchte den Einstieg so einfach wie möglich machen, und Sie können den Rest selbst erforschen.
Schritt 0: Öffnen Sie ein Konsolenfenster
Bevor Sie sich in Vim stürzen, müssen Sie eine kleine Vorbereitung machen. Öffnen Sie ein Konsolenterminal Ihres Linux-Betriebssystems. (Da Vim auch unter MacOS verfügbar ist, können Mac-Benutzer diese Anleitung ebenfalls verwenden.)
Wenn ein Terminalfenster geöffnet ist, geben Sie den Befehl ls ein, um das aktuelle Verzeichnis aufzulisten. Geben Sie dann mkdir Tutorial ein, um ein neues Verzeichnis namens Tutorial zu erstellen. Gehen Sie in das Verzeichnis, indem Sie cd Tutorial eingeben.
Das war’s mit der Vorbereitung. Jetzt ist es Zeit, zum spaßigen Teil überzugehen – Vim zu benutzen.
Schritt 1: Erzeugen und schließen Sie eine Vim-Datei ohne zu speichern
Erinnern Sie sich, als ich sagte, dass ich anfangs Angst hatte, Vim zu benutzen? Nun, der beängstigende Teil war der Gedanke: „Was, wenn ich eine bestehende Datei ändere und alles durcheinander bringe?“ Schließlich verlangten mehrere Informatik-Aufgaben von mir, an bestehenden Dateien zu arbeiten, indem ich sie veränderte. Das wollte ich wissen: Wie kann ich eine Datei öffnen und schließen, ohne meine Änderungen zu speichern?
Die gute Nachricht ist, dass Sie den gleichen Befehl benutzen können, um eine Datei in Vim zu erstellen oder zu öffnen: Vim <DATEI_NAME>, wobei <DATEI_NAME> für den Namen der Zieldatei steht, die Sie erstellen oder ändern wollen. Lassen Sie uns eine Datei namens HelloWorld.java erzeugen, indem wir vim HelloWorld.java eingeben.
Hallo, Vim! Nun, hier ist ein sehr wichtiges Konzept in Vim, vielleicht das wichtigste, das man sich merken sollte: Vim hat mehrere Modi. Hier sind drei, die Sie kennen müssen, um die Grundlagen von Vim zu beherrschen:
Modus | Beschreibung |
---|---|
Normal | Standard; für die Navigation und einfache Bearbeitung |
Einfügen | Für das explizite Einfügen und Ändern von Text |
Befehlszeile | Für Operationen wie Speichern, Beenden, etc. |
Vim hat noch andere Modi, wie den visuellen, den Auswahl- und den Ex-Modus, aber die Modi Normal, Einfügen und Befehlszeile sind für uns gut genug.
Sie befinden sich jetzt im Normal-Modus. Wenn Sie Text haben, können Sie sich mit den Pfeiltasten oder anderen Navigationstasten (die Sie später sehen werden) bewegen. Um sicherzustellen, dass Sie sich im Normalmodus befinden, drücken Sie einfach die Esc-Taste.
Tipp: Esc schaltet in den Normalmodus. Auch wenn Sie sich bereits im Normalmodus befinden, drücken Sie Esc nur zur Übung.
Nun wird es interessant. Drücken Sie : (die Doppelpunkt-Taste), gefolgt von q! (d.h. :q!). Ihr Bildschirm wird wie folgt aussehen:
Das Drücken des Doppelpunkts im normalen Modus schaltet Vim in den Kommandozeilen-Modus, und der Befehl :q! beendet den Vim-Editor ohne zu speichern. Mit anderen Worten, Sie verwerfen alle Änderungen. Sie können auch ZQ benutzen; wählen Sie die Option, die bequemer ist.
Wenn Sie Enter drücken, sollten Sie nicht mehr in Vim sein. Wiederholen Sie die Übung ein paar Mal, nur um den Dreh herauszubekommen. Wenn Sie das getan haben, fahren Sie mit dem nächsten Abschnitt fort, um zu lernen, wie man eine Änderung an dieser Datei vornimmt.
Schritt 2: Änderungen in Vim vornehmen und speichern
Öffnen Sie die Datei erneut, indem Sie vim HelloWorld.java eingeben und die Eingabetaste drücken. Im Einfügemodus können Sie Änderungen an einer Datei vornehmen. Drücken Sie zuerst Esc, um sicherzustellen, dass Sie sich im Normalmodus befinden, und drücken Sie dann i, um in den Einfügemodus zu wechseln. (Ja, das ist der Buchstabe i.)
Unten links sollten Sie — INSERT — sehen. Das bedeutet, dass Sie sich im Einfügemodus befinden.
Geben Sie etwas Java-Code ein. Sie können alles eingeben, was Sie wollen, aber hier ist ein Beispiel, dem Sie folgen können. Ihr Bildschirm wird wie folgt aussehen:
public class HelloWorld {
public static void main(String args) {
}
}
Sehr hübsch! Beachten Sie, wie der Text in den Farben der Java-Syntaxhervorhebung hervorgehoben wird. Weil Sie die Datei in Java begonnen haben, erkennt Vim die Syntaxfarbe.
Speichern Sie die Datei. Drücken Sie Esc, um den Einfügemodus zu verlassen und in den Befehlszeilenmodus zu gelangen. Geben Sie : ein und folgen Sie dem mit x! (d.h. ein Doppelpunkt gefolgt von x und !). Drücken Sie die Eingabetaste, um die Datei zu speichern. Sie können auch wq eingeben, um die gleiche Operation durchzuführen.
Nun wissen Sie, wie man Text mit dem Einfügemodus eingibt und die Datei mit :x! oder :wq speichert.
Schritt 3: Grundlegende Navigation in Vim
Während Sie immer Ihre freundlichen Pfeiltasten nach oben, unten, links und rechts benutzen können, um sich in einer Datei zu bewegen, wäre das sehr schwierig in einer großen Datei mit fast unzähligen Zeilen. Es ist auch hilfreich, in der Lage zu sein, innerhalb einer Zeile herumzuspringen. Obwohl Vim eine Tonne großartiger Navigationsfunktionen hat, ist die erste, die ich Ihnen zeigen will, wie man zu einer bestimmten Zeile geht.
Drücken Sie die Esc-Taste, um sicherzustellen, dass Sie im Normal-Modus sind, dann geben Sie :set number ein und drücken Enter.
Voila! Sie sehen Zeilennummern auf der linken Seite jeder Zeile.
:2
Springen Sie nun zu Zeile 3.
Aber stellen Sie sich ein Szenario vor, in dem Sie es mit einer Datei zu tun haben, die 1.000 Zeilen lang ist und Sie zum Ende der Datei gehen wollen. Wie kommen Sie dorthin? Stellen Sie sicher, dass Sie sich im Normalmodus befinden, geben Sie :$ ein und drücken Sie die Eingabetaste.
Sie befinden sich nun in der letzten Zeile!
Nachdem Sie nun wissen, wie Sie zwischen den Zeilen springen können, lernen wir als Bonus, wie Sie zum Ende einer Zeile gelangen. Stellen Sie sicher, dass Sie sich in einer Zeile mit Text befinden, z. B. in Zeile 3, und geben Sie $ ein.
Sie befinden sich nun am letzten Zeichen der Zeile. In diesem Beispiel ist die offene geschweifte Klammer hervorgehoben, um zu zeigen, wohin sich Ihr Cursor bewegt hat, und die schließende geschweifte Klammer ist hervorgehoben, weil sie das übereinstimmende Zeichen der öffnenden geschweiften Klammer ist.
Das ist es für die grundlegende Navigation in Vim. Warten Sie, verlassen Sie die Datei aber nicht. Lassen Sie uns zum grundlegenden Editieren in Vim übergehen. Fühlen Sie sich frei, eine Tasse Kaffee oder Tee zu trinken.
Schritt 4: Grundlegende Bearbeitung in Vim
Nun, da Sie wissen, wie man in einer Datei navigiert, indem man auf die gewünschte Zeile springt, können Sie diese Fähigkeit benutzen, um einige grundlegende Bearbeitungen in Vim durchzuführen. Wechseln Sie in den Einfügemodus. (Erinnern Sie sich, wie man das macht, indem man die i-Taste drückt?) Sicher, Sie können mit der Tastatur editieren, indem Sie Zeichen löschen oder einfügen, aber Vim bietet viel schnellere Wege, Dateien zu editieren.
Gehen Sie zu Zeile 3, wo public static void main(String args) { steht. Drücken Sie schnell zweimal hintereinander die Taste d. Ja, das ist dd. Wenn Sie das erfolgreich getan haben, sehen Sie einen Bildschirm wie diesen, auf dem die Zeile 3 verschwunden ist und jede folgende Zeile um eins nach oben verschoben wurde (d. h., Zeile 4 wurde zu Zeile 3).
Das ist der Löschbefehl. Aber keine Angst! Drücken Sie u und Sie sehen, dass die gelöschte Zeile wiederhergestellt wurde. Uff. Das ist der Rückgängig-Befehl.
Die nächste Lektion ist zu lernen, wie man Text kopiert und einfügt, aber zuerst müssen Sie lernen, wie man Text in Vim markiert. Drücken Sie v und bewegen Sie die Pfeiltasten nach links und rechts, um Text zu markieren und zu deselektieren. Diese Funktion ist auch sehr nützlich, wenn Sie anderen Code zeigen und den Code identifizieren wollen, den sie sehen sollen.
Gehen Sie zu Zeile 4, wo es heißt System.out.println(„Hallo, Opensource“);. Markieren Sie die gesamte Zeile 4. Erledigt? OK, während die Zeile 4 noch markiert ist, drücken Sie die Taste y. Das nennt man „yank mode“, und es kopiert den Text in die Zwischenablage. Legen Sie nun eine neue Zeile darunter an, indem Sie o eingeben. Um den Einfügemodus zu verlassen, drücken Sie die Esc-Taste und dann die Taste p, die für Einfügen steht. Dadurch wird der kopierte Text von Zeile 3 in Zeile 4 eingefügt.
Zur Übung wiederholen Sie diese Schritte, ändern aber auch den Text in den neu erstellten Zeilen. Achten Sie außerdem darauf, dass die Zeilen gut ausgerichtet sind.
Tipp: Sie müssen zwischen dem Einfügemodus und dem Befehlszeilenmodus hin und her wechseln, um diese Aufgabe zu erledigen.
Wenn Sie fertig sind, speichern Sie die Datei mit dem Befehl x! Das ist alles für das grundlegende Editieren in Vim.
Schritt 5: Grundlegendes Suchen in Vim
Stellen Sie sich vor, Ihr Teamleiter möchte, dass Sie eine Textzeichenfolge in einem Projekt ändern. Wie können Sie das schnell tun? Vielleicht wollen Sie die Zeile mit einem bestimmten Schlüsselwort suchen.
Die Suchfunktion von Vim kann sehr nützlich sein. Gehen Sie in den Kommandozeilenmodus, indem Sie (1) die Esc-Taste drücken und dann (2) die Doppelpunkt : Taste. Wir können ein Schlüsselwort suchen, indem wir :/<SEARCH_KEYWORD> eingeben, wobei <SEARCH_KEYWORD> die zu suchende Textzeichenfolge ist. Hier suchen wir nach der Schlüsselwortzeichenfolge „Hallo“. Im Bild unten fehlt der Doppelpunkt, der aber erforderlich ist.
Ein Schlüsselwort kann aber auch mehrfach vorkommen, und das ist vielleicht nicht das gewünschte. Wie navigieren Sie also, um die nächste Übereinstimmung zu finden? Sie drücken einfach die Taste n, die für next steht. Stellen Sie sicher, dass Sie sich nicht im Einfügemodus befinden, wenn Sie das tun!
Bonus-Schritt: Verwenden Sie den Split-Modus in Vim
Das deckt so ziemlich alle Vim-Grundlagen ab. Aber als Bonus möchte ich Ihnen eine coole Vim-Funktion zeigen, die Split-Modus genannt wird.
Verlassen Sie HelloWorld.java und erstellen Sie eine neue Datei. Geben Sie in einem Terminalfenster vim GoodBye.java ein und drücken Sie die Eingabetaste, um eine neue Datei mit dem Namen GoodBye.java zu erstellen.
Geben Sie einen beliebigen Text ein; ich habe mich für „Goodbye“ entschieden. Speichern Sie die Datei. (Denken Sie daran, dass Sie :x! oder :wq im Befehlszeilenmodus verwenden können.)
Geben Sie im Befehlszeilenmodus :split HelloWorld.java ein, und sehen Sie, was passiert.
Wow! Sehen Sie sich das an! Der Split-Befehl erzeugt horizontal geteilte Fenster mit HelloWorld.java oben und GoodBye.java unten. Wie können Sie zwischen den Fenstern umschalten? Halten Sie die Strg-Taste (auf einem Mac) oder CTRL (auf einem PC) gedrückt und drücken Sie dann ww (d. h. zweimal hintereinander w).
Als abschließende Übung versuchen Sie, GoodBye.java so zu bearbeiten, dass es mit dem Bildschirm unten übereinstimmt, indem Sie aus HelloWorld.java kopieren und einfügen.
Speichern Sie beide Dateien, und Sie sind fertig!
TIP 1: Wenn Sie die Dateien vertikal anordnen wollen, verwenden Sie den Befehl :vsplit <FILE_NAME> (statt :Split <DATEI_NAME>, wobei <DATEI_NAME> der Name der Datei ist, die Sie im Split-Modus öffnen möchten.
TIP 2: Sie können mehr als zwei Dateien öffnen, indem Sie so viele zusätzliche Split- oder Vsplit-Befehle aufrufen, wie Sie möchten. Probieren Sie es aus und sehen Sie, wie es aussieht.