vi: Crashkurs für Einsteiger

Dieser Artikel richtet sich an Einsteiger, die sich mit vi (vim) grundlegend zurechtzufinden wollen.
Nuvola apps package editors vim vi unix shell open source linux editor bash admin /etc

Quelle: Wikimedia (GNU Lesser General Public License)

Inhalt:
Datei öffnen
In den Eingabemodus wechseln
Datei editieren
In den Befehlsmodus wechseln
vi verlassen
Datei mit Änderungen speichern
Datei ohne Änderungen verlassen
Syntaxhighlighting aktivieren


Einstieg:
vi ist der Dinosaurier unter den Texteditoren auf Unixsystemen. Er ist quasi auf jedem Linuxsystem vorhanden. Wer also auf vielen verschiedenen Systemen unterwegs ist (oder wer gar Systeme administriert), wird früher oder später mit vi Bekanntschaft machen und sollte zumindest die Grundlagen dieses Texteditors kennen. vi eilt der Ruf schwerer Bedienbarkeit voraus. Auf vielen Systemen wird heute zur Benutzerfreundlichkeit /usr/bin/vi auf /usr/bin/vim verlinkt. vim ist eine erweiterte Version von vi, mit dem u.a. Syntaxhighlighting möglich ist.

Mit vi eine Datei öffnen: Hierzu ruft man vi mit der zu öffnenden Datei als Argument auf. Beispiel:

vi /home/vimhero/test

Existiert die aufgerufene Datei in obigem Beispiel nicht, öffnet vi trotzdem die Datei ‘test’.

Mit vi eine Datei editieren: Wer die Datei ‘test’ nun durch Eingabe von Buchstaben editieren will, mag eine Enttäuschung erleben. vi reagiert nicht so, wie man es z.B. von nano gewohnt ist. Dies liegt an den verschiedenen Befehlsmodi von vi. Nach dem Öffnen von ‘test’ muss nun in den Eingabemodus gewechselt werden, um die Datei mit Inhalten zu füttern. Hierzu drückt man die Taste ‘i’ (i=insert). Nun ist man im Eingabemodus und kann die Datei mit Inhalt füllen…

Dateiänderungen speichern: Wir haben ‘test’ nun also mit Daten gefüttert und wollen die Datei nun speichern. Noch sind wir ja im Eingabemodus. Zur Speicherung müssen wir erst in den Befehlsmodus wechseln. Dies geschieht durch die Eingabe der ESCAPE-Taste, gefolgt von einem Doppelpunkt. Nun sind wir im Befehlsmodus. Nun noch ein ‘w’ (w=write) und ENTER und der Inhalt von Test ist gespeichert. Um eine Datei aus dem Einfügemodus heraus zu speichern, geben wir also 4 Tastenschläge ein:

[ESC] :w [ENTER]

Datei ohne Änderungen speichern: Manchmal will man eine Datei so verlassen, wie sie in ihrem Ursprungszustand war, obwohl man in der Zwischenzeit kräftig darin herumeditiert hat. Oder man hat fälschlicherweise eine Datei geöffnet, die es nicht gibt (und die es auch nicht geben soll). In beiden Fällen kann man vi ohne Änderungen mit ‘q’ verlassen. Aus dem Eingabemodus heraus nimmt man also:

[ESC] :q! [ENTER]

Lässt man das Ausrufezeichen weg, beschwert sich vi, dass seit der Änderung keine Speicherung stattgefunden hat. Um sich darüber hinwegzusetzen und die Datei ohne Änderungen zu speichern (bzw. sie gar nicht erst anzulegen), fügt man das Ausrufezeichen hinzu.

Änderungen speichern UND vi verlassen: Die beiden letzten Beispiele lassen sich natürlich auch kombinieren. Nach dem editieren einer Datei kann man diese speichern und vi gleichzeitig verlassen mit:

[ESC] :wq [ENTER]

Mit diesem Wissen kann man mit vi(m) grundlegend arbeiten. Der Umfang an Befehlen für vi(m) ist gewaltig und beinhaltet Suchfunktion, Zeilennummerierung u.v.m. Als kleines Schmankerl soll hier nur noch kurz auf das Syntaxhighlighting eingegangen werden. Dies -und noch viel mehr- kann dauerhaft in der Konfigurationsdatei für vim aktiviert werden. Diese heißt .vimrc und ist im Heimverzeichnis des Benutzers zu Hause. Mit dem vim öffnen wir also die .vimrc …

vi /home/vimhero/.vimrc

… geben ‘i’ ein, um in den Einfügemodus zu gelangen und geben die Zeile:

syntax on

ein. Um dies zu speichern, geben wir:

[ESC] :wq [ENTER]

ein. Öffnen wir nun z.B. die Datei /etc/services mit vim, sehen wir folgendes:

services vim vi unix shell open source linux editor bash admin /etc

vim mit Syntaxhighlighting

vim erkennt die Syntax der Datei und stellt sie uns benutzerfreundlich dar. Ach übrigens: Das grüne “EINFÜGEN” in der Ecke unten links kommt von einem weiteren Eintrag in die .vimrc. Trägt man in eine neue Zeile…

startinsert

… ein, startet vim immer gleich im Eingabemodus, ohne dass man ‘i’ drücken muss.

Comments

  1. Hallo,
    VIM ist ein super Editor! Ich arbeite fast ausschließlich damit. Es gibt unzählig viele Plugins, die beim Arbeiten helfen: Plugins, die ich nutze (http://blog.dsiw-it.de/2011/06/16/uberblick-vim-plug-ins/).
    Was sich ein wenig komisch anfühlt ist das Kopieren und Einfügen mit VIM, aber wenn man erst mal weiß, wie es geht, dann klappt das ganz gut: http://blog.dsiw-it.de/2011/05/18/kopieren-mit-vim/ Zur Not nutzt man ein eigenes Mapping.
    Gruß DSIW

Comments are closed