Einführung in den Vim-Editor

© urbanhearts, Fotolia

Doppel-Leben

Der Vim-Editor fehlt in kaum einer noch so kleinen Linux-Distribution. Grund genug für jeden Administrator, sich mit ihm zu beschäftigen. Wer ihn besser kennt, profitiert davon durch effizientes Arbeiten.
Beinahe enzyklopädisch behandelt unser Schwerpunkt-Artikel über IPSEC verschlüsselte Verbindungen zwischen Linux, Windows, BSD, Solaris, Cisco- sowie ... (mehr)

Texteditoren sind die grundlegenden Werkzeuge für jeden Administrator und jede Administratorin, mit denen sie Konfigurationsdateien bearbeiten und Shellskripts schreiben. Ein Editor, der im Gegensatz zu dem kürzlich an dieser Stelle behandelten Emacs [1], fast immer installiert ist, ist ein Vi-ähnlicher Editor wie Vim [2].

Ungefähr schon seit der Entdeckung des Feuers dauert bekanntlich der Flamewar zwischen Emacs- und Vi-Anhängern an. Ganz ohne Wertung ist es aber wahrscheinlicher, dass irgendein Vi-Klon Teil einer minimalistischen Linux-Distribution ist. Neben Vim, um den es in diesem Artikel vorwiegend geht, gibt es beispielsweise auf BSD-Systemen auch Nvi [3], bei Minix findet sich Elvis [4], selbst die Busybox-Tools bringen ihren eigenen Vi-Ableger mit [5].

Auf Standard-Linux-Distributionen ist Vim aber zweifellos der Favorit, nicht zuletzt, weil er sich mit Makros und Skripts gut an die eigenen Bedürfnisse anpassen lässt. Vim ist heute so populär, dass die meisten Anwender sich mit dem Namen "Vi" eigentlich auf ihn beziehen und dabei vergessen, dass er sich gegenüber dem Ahnen wesentlich weiterentwickelt hat und deshalb den Namen "Vi IMproved" (verbesserter Vi) trägt. Mittlerweile hat selbst Vim schon einige Jahre auf dem Buckel und kann dieses Jahr sein 20-jähriges Jubiläum feiern.

Viele Linux-/Unix-Neueinsteiger finden Vim bei der ersten Benutzung sehr eigenwillig. Die Trennung zwischen Kommando- und Editiermodus ist ungewohnt (dazu später mehr), und anekdotisch sind die Geschichten von Anwendern, die es nicht schaffen, den Editor zu verlassen. Deshalb sind bei Linux-Anfängern Editor-Alternativen wie Joe [6] oder Nano [7] beliebt.

Spätestens, wenn man im Single-User-Modus landet oder in einer anderen minimalen Recover-Umgebung, fehlen diese Tools aber, und man ist doch wieder auf zumindest rudimentäre Beherrschung der Vim-Bedienung angewiesen. Natürlich ist der Funktionsumfang riesig und die richtige Beherrschung des Editors beinahe ein Lebenswerk, aber man kann sich dennoch leicht an einem Nachmittag ausreichende Vim-Kenntnisse aneignen.

Interfaces und Modes

Sie starten den Vim-Editor, indem Sie »vim« eingeben. Wollen Sie eine existierende Datei öffnen, folgt deren Name dahinter. Existiert die Datei noch nicht, legt Vim sie an. Auf vielen Distributionen gibt es einen Alias für Vim, dann genügt es, »vi« einzugeben.

Wenn Sie Vim mit einer neuen Datei starten, erscheint das Fenster beunruhigend leer, gibt es keine Menüs oder Befehlskürzel zu sehen, die der Orientierung dienen könnten. Beim Start ohne weitere Parameter gibt Vim immerhin einige Hinweise zum Einstieg (Abbildung 1). Wer arglos nun seinen Text eingeben oder den Cursor bewegen möchte, erleidet gleich sein erstes Vim-Frusterlebnis.

Abbildung 1: Ohne weitere Parameter gestartet, gibt Vim immerhin einige Wegweiser zu weiterer Hilfestellung.

Das Rechteck in der linken oberen Ecke markiert die aktuelle Position in der Datei, die Tilde-Zeichen am linken Rand stehen für leere Zeilen. Die Zahlen geben die Position des Cursors numerisch an. "All" oder im deutsch lokalisierten Vim "Alles" steht dafür, dass derzeit das komplette Dokument im Fenster Platz findet.

Warum ist es nun nicht möglich, einfach loszutippen? Der Grund dafür liegt darin, dass Vim zwei Betriebsmodi unterscheidet: Er startet im Befehlsmodus, in dem der Anwender Dateien speichert, durch eine Datei navigiert und Zeichen löscht. Um in den Eingabe-Modus zu gelangen, geben Sie »i« ein. Der Editor quittiert das, indem er unten links »INSERT« anzeigt (Abbildung 2).

Abbildung 2: Vim besitzt zwei Modi: den Befehls- und den Eingabemodus. Zwischen den beiden Modi umzuschalten, ist der erste Schlüssel zur Bedienung des Editors.

Im Eingabemodus können Sie Text ganz normal eintippen. Wenn die Terminal-Einstellungen stimmen und Sie eine moderne Vi-Variante wie Vim verwenden, ist es möglich, den Cursor mit den Pfeiltasten der Tastatur zu bewegen. Mit [Entf] oder der Backspace-Taste löschen Sie einzelne Zeichen, mit der Eingabetaste beginnen Sie eine neue Zeile. Um zurück in den Kommandomodus zu gelangen, drücken Sie [Esc]. Die Abwesenheit jeglicher Statusmeldungen in der linken unteren Ecke zeigt den Befehlsmodus an.

Der Vim-Editor wird normalerweise nur mit der Tastatur bedient. Auch wenn es einige Ansätze dazu gibt, Vim mit der Maus zu bedienen [8], zum Beispiel zum Scrollen, bleibt die Tastatureingabe die erste Wahl. Erfahrene Vim-Anwender bewegen sich ohne Maus mindestens genauso schnell durch ihre Dateien, und sie müssen auch nicht mit der Hand zwischen Maus und Tastatur hin- und herwechseln.

Vim ist sogar für Tastaturen ausgelegt, die keine besonderen Tasten besitzen. So können Anwender auch ohne Pfeiltasten durch die Dateien navigieren, daber dazu später mehr. Erst sei noch darauf hingewiesen, dass Vim auch bei Tastaturbefehlen zwischen Klein- und Großschreibung unterscheidet. Ein »J« bedeutet also normalerweise etwas anderes als ein »j« . Häufig hängen die damit verknüpften Befehle inhaltlich zusammen. So ersetzt beispielsweise »r« das aktuelle Zeichen, während »R« mehrere Zeichen ersetzt. Die Unterschiede sind dennoch groß genug, dass es sich lohnt, sich die Bedeutung der Tastaturbefehle einzeln zu merken.

Manche Befehle lassen sich auch nicht einfach so eingeben. Ihnen müssen Sie einen Doppelpunkt oder ein anderes Präfix oder eine andere Kommandotaste voranstellen. Wenn Sie zum Beispiel die Hilfe lesen möchten, geben Sie »:help« ein, gefolgt von der Eingabetaste. Mit »:q« verlassen Sie die Hilfe wieder. Andere Befehle besitzen eigene Präfixe, beispielsweise die Navigationstools, die mit der [Strg]-Taste eingeleitet werden.

Um den Editor zu beenden und die Datei(en) zu speichern, geben Sie »:qa« oder »:qw« ein. Wollen Sie den Editor verlassen ohne zu speichern, verwenden Sie stattdessen »:q!« . Mit »:w new Dateiname« speichern Sie den Inhalt des Editors in einer neuen Datei. Auch diese Befehle erscheinen beim Eintippen unten links, genauso wie Ihre Fehlermeldungen, wenn etwas schiefgeht (Abbildung 3).

Abbildung 3: Ist die aktuelle Datei nicht gesichert, weist Vim beim Versuch zu beenden darauf hin.

Navigation

Die bis hierher gewonnenen Kenntnisse reichen aus, um Vim einigermaßen zu bedienen, aber weder besonders elegant noch sehr effizient. Die Profi-Stufe beginnt damit, sich nicht mit den Cursor-Tasten durch eine Datei zu bewegen, sondern mit den dafür vorgesehenen Buchstaben-Tasten. Die Taste »j« bewegt den Cursor eine Zeile nach unten, »k« nach oben. Die »l« -Taste verschiebt den Cursor nach rechts, die Taste »h« nach links. Alternativ dazu können Sie im Befehlsmodus den Cursor mit der Backspace-Taste ein Zeichen zurück bewegen, mit der Eingabe-Taste eine Zeile nach vorne.

Mit »0« springen Sie an den Anfang einer Zeile, mit »$« ans Ende. Diese Kürzel sind sehr praktisch, denn Vim beendet eine Zeile nur dann, wenn Sie sie explizit mit der Eingabetaste umbrechen. Ein automatischer Zeilenumbruch findet nicht statt. So ist zum Beispiel in HTML-Dateien oft ein ganzer Absatz eine Zeile, bis nach dem schließenden Tag ein Umbruch folgt. Mit »w« springt der Cursor zum Anfang des nächsten Worts, mit »b« zum Anfang des vorigen.

Vim bietet auch Tastaturkommandos, um sich in größeren Dateien schneller zu bewegen. So bewegt sich [Strg]+[f] bildschirmweise nach vorne, [Strg]+[b] entsprechend in die andere Richtung. Geht Ihnen das zu schnell, bieten [Strg]+[d] respektive [Strg]+[v] die halbe Schrittweite. Sie können auch direkt zu einer Zeile springen, wenn Sie »ZeilennummerG« eingeben, also die Zeilenummer gefolgt von einem »G« . Geben Sie nur »G« ein, springt Vim gleich zur letzten Zeile der Datei. Wenn Sie diese Befehle beherrschen, können Sie sich ungleich schneller durch Ihre Dateien bewegen als mit den Cursor-Tasten.

Artikel als PDF herunterladen

Grundkurs Vim 1,92 MB

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019