Auf der Suche nach einem Texteditor unter Mac Os X, der meinem Anforderungsprofil entspricht, stellte ich zu meiner Freude fest, dass VIM in der Standardinstallation von Mac Os X enthalten ist.
VIM, einer der beiden Protagonisten des Editor War, wirkt auf den ersten Blick wie ein einziger Anachronismus. Gerade im bunten und auf Usability getrimmten Mac Os X wirkt ein Programm, das ausschließlich über das Terminal gesteuert wird, wie ein Fremdkörper.
Doch alles der Reihe nach. Mac Os 10.6 enthält mit VIM 7.2.108 eine halbwegs aktuelle Version, ist der aktuellste Release 7.3.
Ich werde mich im folgenden mit der 7.2.108 Version von VIM beschäftigen, die bei Mac Os X vorinstalliert ist. Der Vollständigkeit halber sei an dieser Stelle erwähnt, dass es eine Carbon und Cocoa (a.k.a. MacVim) Version von VIM gibt, die eine entsprechende grafische Oberfläche bieten und sich im Falle der Cocoa- Version optisch nahtlos in Mac Os X einfügt. Die Carbon Version wurde hauptsächlich für ältere Versionen von Mac Os gedacht und wird nicht mehr regelmäßig geupdated.
Ein kurzer Exkurs zu VIM: Wie bereits erwähnt, bietet VIM ein anderes Bedienkonzept als gewöhnliche Editoren. VIM läuft (wie der Vorgänger vi) standardmäßig komplett im Terminal und wird ohne Maus bedient. Dies Konzept ist historisch bedingt und rührt aus Zeiten als ed der Unix-Editor schlecht hin war. Seinerzeit wurde noch zeilenbasiert gearbeitet, die Ausgabe erfolgte zudem meist auf einen Drucker, nicht einen Bildschirm. Deshalb musste man bei der Arbeit mit ed zwischen einem Editier- und Kommandomodus wechseln. Ab 1976 wurde vi entwickelt, der bildschirmorientiertes arbeiten ermöglichte, ein damals revolutionärer Ansatz. Als Nachfolger von ed, erbte vi, und damit alle vi kompatiblen Editoren (und letztendlich damit auch VIM), dieses modale Bedienkonzept.
Für diejenigen die noch nie mit vi oder VIM gearbeitet haben: Nachdem man eine Datei geöffnet hat, findet man sich im Kommandomodus. In diesem können keine direkten Änderungen am Text vorgenommen werden. Ein drücken der Taste „i“ wechselt in den Editormodus, in dem die Datei bearbeitet werden kann. Nach der Bearbeitung wechselt man durch drücken von „Esc“ zurück in den Kommandomodus. Durch Eingabe eines Doppelpunktes und nachfolgender Kommandos (z.B. :wq für Datei schreiben und VI(M) schließen) kann die Datei gespeichert werden.
Auf den ersten Blick ein recht umständliches Bedienkonzept, doch machen die Vielzahl an komplexen Funktionen, die im Kommandomodus ausgelöst werden können, VI(M) zu einem sehr mächtigen Werkzeug. Nachteilig wirkt sich dies in einer hohen Schwelle für Einsteiger, kombiniert mit einer steilen Lernkurve, aus.
Zurück zum Test. Bei den ersten Versuchen mit VIM unter Mac Os X fällt auf, dass VIM nur mit einer rudimentären Config ausgeliefert wird, in der nicht mal Syntax Highlighting aktiviert ist.
Also ist das erste File, das mit VIM bearbeitet wird die VIM Konfiguration.
Um die Konfigurationsdatei zu öffnen, navigiert man im Terminal in den VIM – Ordner und öffnet die VIM – Konfigurationsdatei. Dazu gibt man folgendes ein:
cd /usr/share/vim
sudo vim vimrc
Gegebenenfalls muss man noch sein Passwort eingeben um die Datei zu öffnen.
VIM befindet sich nun im Kommando – Modus. Um in den Editormodus zu wechseln, drückt man „i“. Da das Config – File nur sehr rudimentäre Funktionen erhält, sollte die Zeile, die ‘set backspace=2‘ schnell gefunden sein.
Unter dieser Zeile kann man nun folgendes einfügen, um die wichtigsten Funktionen dauerhaft einzuschalten. (Der VI(M) Philosophie können alle Funktionen auch einzeln aus dem Kommando – Modus für das aktuelle Dokument aktiviert werden.)
set ai „auto Einrücken
set history=100 “ letzte 100 Zeilen in der History
set ruler “ Zeige Cursorposition
syntax on “ Syntax Highlighting
set hlsearch “ Letzten Suchbegriff hervorheben
filetype plugin on “ File Type Plugins benutzen
“ Springe zur letzten Cursor – Position
autocmd BufReadPost *
\ if ! exists(„g:leave_my_cursor_position_alone“) |
\ if line(„‚\““) > 0 && line („‚\““) <= line(„$“) |
\ exe „normal g’\““ |
\ endif |
\ endif
Nachdem die Datei entsprechend angepasst wurde, drückt man Escape um wieder in den Kommando – Modus zu wechseln. Hier kann man nun die gewünschten Befehle eingeben. Ein :wq oder 😡 speichert die Datei ab und schließt das aktuelle VIM Fenster.
Wenn man nun eine beliebige Datei öffnet, sind die gewünschten Funktionen eingeschaltet.
Anhand des obigen Beispiels und mit Hilfe der Man – Pages kann man VIM den eigenen Wünschen entsprechend anpassen.
Nun zum eigentlichen Text, der zugegebenermaßen kein objektiver ist. Ich nutze VIM schon lange als Texteditor für C in Unix Systemen.
Ich kann mich trotzdem noch lebhaft an meinen vi Einstieg erinnern. Ohne die Man – Pages zur Hilfe zu ziehen, kommt man nicht weit.
Hat man sich allerdings an die Möglichkeiten gewöhnt, die der Kommando – Modus bietet, wird man verwundert sein, wie schnell man komplexe Funktionen ausführen kann.
VIM bietet ab Version 6.x die Möglichkeit mehrere Tabs zu öffnen.
Ein :tabnew dateiname im Kommando – Modus öffnet ein neues Tab mit der gewünschten Datei. Möchte man bereits beim VIM Start mehrere Dateien öffnen, muss VIM mit dem Parameter -p starten:
vim -p datei1 datei2 datei3
Standardmäßig ist die maximale Anzahl an Tabs 10. Die Anzahl kann in der vimrc erhöht werden:
set tabpagemax=20
Die gesammelten Funktionen die VIM in Verbindung mit Tabs bietet, würden den Rahmen dieses jetzt schon sehr langen Artikels sprengen, deshalb möchte ich nur noch auf eine Funktion von VIM hinweisen, die viele nicht kennen.
Mit :sp bzw. :vsp kann das aktuelle Fenster horizontal (:sp) oder vertikal (:vs) geteilt werden. Dies Feature ist mehr als Hilfreich bei der parallelen Arbeit mehreren Dateien.
Mit Ctrl + W kann man zwischen den verschiedenen Teil-Fenstern springen. Ctrl+ W + r rotiert die Fenster nach rechts, Ctrl + W + R rotiert die Fenster nach links.
Wer nun auf die Idee kommt, mit dieser Funtkion einen manuellen diff durchzuführen, sei auf die Funktion vimdiff hingewiesen, deren Umfang endgültig den Rahmen dieses Artikels sprengen würde.
Keine Angst die Man – Pages helfen weiter.
Eigentlich wäre diese Artikelserie hier vorbei. VIM ist ein mächtiger Editor, dessen Eigenarten ich schon von Linux – Derivaten kenne. Ich brauche mich nicht umstellen und habe einen leichtgewichtigen Editor, der gleichzeitig sehr viele Funktionen bietet.
Der Fairness halber sei aber noch mal auf die recht hohe Schwelle zur Einarbeitung hingewiesen und das heute anachronistisch anmutende Bedienkonzept, das den Einstieg nicht gerade erleichtert.
danke für die flotte und tolle Anleitung mein Unix ist etwas verrostet und Syntax Hiliting im Vi ist schon ne feine Sache