VIM Terminal Texteditor
VIM ist ein universeller und leistungsstarker Texteditor der auf so gut wie allen Betriebssystem über ein Terminal oder eine Eingabeaufforderung benutzt werden kann. Zunächst wurde VIM, bzw. der Vorreiter vi lediglich für Linux/Unix Systeme eingeführt. Durch einen Workaround kann Vim allerdings auch unter Windows Betriebssystemen benutzt werden.
Der Vorreiter von VIM war Vi, welcher von Bill Joy ab 1976 entwickelt wurde. Vi wies zu diesem Zeitpunkt bereits einige Vorteile gegenüber älterer Texteditoren wie ed von Ken Thompsons auf.
Bram Moolenaar begann Ende der 1980er Jahre mit der Entwicklung von Vim (Vi IMproved). Das bedeutet so viel wie: VIM ist Vi IMproved. Es handelt sich also um eine Verbesserung des Vi Texteditors.

Allgemeines zu VIM
Um den VIM Texteditor zu starten, öffne je nach Betriebssystem ein Terminal- oder ein cmd-Fenster. Dort gibst du dann den Befehl
vim
ein. Im Anschluss sollte im Terminal die folgende VIM Informationsseite erscheinen. Mit dem Befehl
vim <file>
kannst du eine bereits bestehende Datei mit dem VIM Texteditor öffnen und bearbeiten.
VIM kann zwischen verschiedenen Modi hin und her wechseln. Startet man den Texteditor, befindet man sich zunächst im Kommandomodus. Hier können hauptsächlich Kommandos entgegengenommen werden um den Cursor im Text zu bewegen, Textpassagen zu kopieren oder ganze Zeilen zu löschen. Um den Text letztendlich anzupassen, oder neuen Text hinzuzufügen wechselt man in den Eingabemodus. Es gibt verschiedene Möglichkeiten in den Eingabemodus zu gelangen. Dazu mehr in der Befehlsliste unter Eingabemodus.
VIM Texteditor Befehle
Global
:h <Stichwort> | Öffnet eine VIM Hilfeseite oder eine Hilfe zu einem Schlüsselwort |
:ter | Öffnet ein neues Terminal Fenster |
:clo | Schließt die aktuelle Ansicht |
vimtutor | Startet ein Tutorial um die ersten VIM Befehle kennenzulernen |
Cursor Bewegungen im Kommandomodus
h | Bewegt den Cursor ein Zeichen nach links |
l | Bewegt den Cursor ein Zeichen nach rechts |
j | Bewegt den Cursor eine Zeile nach unten |
k | Bewegt den Cursor eine Zeile nach oben |
H | Bewegt den Cursor zum Anfang des Bildschirms |
M | Bewegt den Cursor zur Mitte des Bildschirms |
L | Bewegt den Cursor an das Ende des Bildschirms |
w | Bewegt den Cursor zum nächsten Wortanfang |
W | Bewegt den Cursor zum nächsten Wortanfang. Wort kann Interpunktion (Satzzeichen wie z.B. Bindestriche) enthalten. |
e | Bewegt den Cursor zum nächsten Wortende |
E | Bewegt den Cursor zum nächsten Wortende. Wort kann Interpunktion (Satzzeichen wie z.B. Bindestriche) enthalten. |
b | Bewegt den Cursor zum vorherigen Wortanfang |
B | Bewegt den Cursor zum vorherigen Wortanfang. Wort kann Interpunktion (Satzzeichen wie z.B. Bindestriche) enthalten. |
gg | Bewegt den Cursor zum Anfang des Textes |
G | Bewegt den Cursor ans Ende des Textes |
<number>gg | Beweg den Cursor zu Zeile number. 10gg springt zum Beispiel zu Zeile 10 |
Bewegungen im Editiermodus
Die folgenden Befehle werden mit Hilfe einer Tastenkombination ausgeführt. Die erste Taste ist die Steuerungstaste, unter Windows Betriebssystemen handelt es sich um die [Ctrl] oder [Strg] Taste, unter Linux/Mac OS um die [control] Taste.
Ctrl + e | Bewegt den Inhalt im Terminal-Fenster eine Zeile nach unten |
Ctrl + y | Bewegt den Inhalt im Terminal-Fenster eine Zeile nach oben |
Ctrl + f | Bewegt den Inhalt im Terminal-Fenster eine Bildschirmseite vorne |
Ctrl + b | Bewegt den Inhalt im Terminal-Fenster eine Bildschirmseite zurück |
Kopieren und Einfügen im Kommandomodus
Mit Hilfe der folgenden Befehle können Zeichen, Wörter und sogar Textabschnitte im Kommandomoduskopiert und eingefügt werden. Sie werden in einem Buffer abgelegt, um diese später wieder einfügen zu können. Eine weitere Vorgehensweise um bestimmte Teile des Textes in den Buffer zu kopieren ist der Wechsel in den Visual-Modus (v). In diesem Modus können Textabschnitte wie in einem Word-Dokument, durch markieren des Texters durch die Maus, kopiert und eingefügt werden.
yy | Kopiert die Zeile, in der sich der Cursor befindet in den Buffer |
<number>y | Kopiert number+1 Zeilen in den Buffer. 6y kopiert also 7 Zeilen. |
yb | Kopiert das Wort links vom Cursor in den Buffer |
<number>yb | Kopiert number Worte links vom Cursor in den Buffer |
yw | Kopiert das Wort rechts vom Cursor in den Buffer |
<number>yw | Kopiert number Worte rechts vom Cursor in den Buffer |
VIM Editor starten
vim | Startet den VIM Texteditor |
vim <file> | Öffnet eine bestimmte Datei mit dem VIM Texteditor. Ist die Datei noch nicht vorhanden, wird eine neue Datei mit dem angegebenen Namen erstellt |
vim -R <file> | Öffnet die angegebene Datei im read-only-mode (Schreibgeschützter Modus) |
Eingabemodus
i | Wechselt in den Eingabemodus (Einfügen an der aktuellen Stelle links von Cursor) |
I | Wechselt in den Eingabemodus (am Anfang der aktuellen Zeile einfügen) |
a | Wechselt in den Eingabemodus ("append", Einfügen an der aktuellen Stelle rechts von Cursor) |
A | Wechselt in den Eingabemodus ("append", am Ende der aktuellen Zeile anhängen.) |
o | Wechselt in den Eingabemodus (Fügt eine neue Zeile hinter der aktuellen Zeile ein) |
O | Wechselt in den Eingabemodus (Fügt eine neue Zeile vor der aktuellen Zeile ein) |
R | Wechselt in den Eingabemodus (Überschreibt alle Zeichen ab der Cursorposition) |
v | Wechselt in den Visuellen Modus (Wird häufig zum Kopieren und Einfügen per Maus benutzt) |
Nach dem Aufruf eines Insert-Befehls erscheint in der untersten Zeile: -- INSERT -- | |
ESC | Wechsel vom Eingabemodus zurück in den Kommandomodus |
Dateiverwaltung
Speichern und Beenden
:q | VIM beenden, sofern alle Buffer geleert sind (alle Änderungen gespeichert wurden). Ist das nicht der Fall, wird ein Hinweis ausgegeben. |
:q! | VIM beenden, nicht gespeicherte Änderungen werden verworfen |
:w | Aktuelle Datei speichern |
:w <file> | Aktuelle Datei unter einem neuen Namen speichern. Es wird weiterhin das Original bearbeitet |
:wq | Aktuelle Datei speichern und VIM beenden |
:wn | Aktuelle Datei speichern und das nächste Dokument öffnen |
:x | Aktuelle Datei speichern und den Editor beenden |
Konfiguration
:set number | Zeigt die Zeilennummern an |
:set nonumber | Zeigt die Zeilennummern nicht an |
:set list | Zeigt Sonderzeichen an |
:set nolist | Zeigt keine Sonderzeichen an |
:syntax on | Aktiviert das Syntaxhighlighting |
:syntax off | Deaktiviert das Syntaxhighlighting |
:set autoindent | Text automatisch einrücken |
Bufferverwaltung
VIM kann verschiedene Dokumente gleichzeitig bearbeiten. Dafür werden sogenannte Buffer verwendet, die unabhängig voneinander geöffnet und geschlossen werden können. Somit können Dokumente im Hintergrund, vertikal oder horizontal nebeneinander, oder in Tabs geöffnet sein.
:buffers | Zeigt alle offenen Buffer an |
:e <file> | Lädt eine Datei in den Buffer |
:new <file> | Öffnet eine neue Datei und teilt den Bildschirm in der Horizontalen |
:vnew <file> | Öffnet eine neue Datei und teilt den Bildschirm in der Vertikalen |
:tabnew <file> | Öffnet eine Datei in einem neuen Tab |
:tabs | Zeigt alle aktuell geöffneten Tabs an |
Windows Kommandozeile (Konsole)Shell, Terminal, Konsole, Kommandozeile, Befehle, Shortcuts, Dateioperationen, Netzwerkbefehle | keyboard_arrow_right |
Linux Kommandozeile (Terminal)Shell, Terminal, Konsole, Kommandozeile, Befehle, Dateioperationen, Komprimierung, Prozessmanagement, Netzwerk und System Befehle | keyboard_arrow_right |