Modernes vim

Die mit Mac OS 10.3 (Panther) ausgelieferte Version von vim (6.2) unterstützt zwar prinzipiell die Textkodierung UTF-8, ist aber nicht mit multi-byte-Unterstützung kompiliert worden.

Um UTF-8-kodierte Dateien zu verwenden und zu erzeugen, kann man vim selbst kompilieren (Voraussetzung sind die Developer Tools). Folgende Schritte sind notwendig:

  1. Download des vim-Source (6.3) unter vim.org.
  2. Die Datei muss entpackt werden mit:

    bunzip2 -c vim-6.3.tar.bz2 | tar -xf -

  3. Anschließend sollte man die Datei Makefile im Verzeichnis vim63/src editieren und folgende Zeilen entkommentieren:

    CONF_OPT_MULTIBYTE = --enable-multibyte # Zeile 399 CONF_OPT_FEAT = --with-features=huge # Zeile 435

  4. Es folgt die eigentliche Kompilation mit dem Befehl make.
  5. Anschließend müssen die kompilierten Dateien installiert werden mit sudo make install. Die Installation erfolgt in /usr/local/bin.

    Die von Apple gelieferte Version liegt in /usr/bin. Um ganz auf die neue Version zu wechseln, sollte die Apple-Version mit allen Symlinks entfernt werden. Entsprechendes gilt für die man-Seiten. Zwei Hinweise: Apple stellt einen symbolic link namens vi für vim zur Verfügung, der in /usr/local/bin manuell eingefügt werden muss, wenn man vim mit vi filename aufrufen können möchte. Hat man die Erweiterungen zum Source-Code ebenfalls heruntergeladen, wird automatisch eine GUI-Version kompiliert, und es erfolgt keine Installation in /usr/local/bin (dazu s.u.)

  6. Um den bei der Kompilation aktivierten multi-byte support auch genießen zu können, gehören folgende Zeilen in eine (selbst zu erzeugende) Datei ~/.vimrc:

    set encoding=utf-8 set termencoding=utf-8

    Auch das Terminal selbst muss natürlich (Fenstereinstellungen > Monitor > Zeichensatz-Kodierung) auf "Unicode (UTF-8)" eingestellt werden.

Das einzige Problem mit der Terminal-Version von vim sind die Zeilenumbrüche: Wenn vim die Zeilen am Fensterrand umbricht, ohne Zeilenumbrüche einzufügen ("soft wrapping" mit der Einstellung :set wrap nolinebreak), können beim Umbrechen langer Zeilen Zeichen verschwinden. Die Lösung ist die Option :set linebreak, mit der Vim Zeilen automatisch in Wortzwischenräumen umbricht.

Kompilation einer Version mit GUI (Carbon)

Eine Alternative ist die Verwendung einer GUI-Version, die nicht mit dem Terminal interagiert. Um eine solche Version unter Mac OS 10.3 zu kompilieren, werden bestimmte Erweiterungen zum vim-Source benötigt (Download: vim.org).

  1. Auch diese Datei muss entpackt werden (nach dem Entpacken des eigentlichen Source-Codes und im selben Verzeichnis wie dieser):

    gunzip -c vim-6.3-extra.tar.gz | tar -xf -

  2. Hat man vorher bereits eine Version ohne GUI kompiliert, ist die Distribution mit make distclean zu bereinigen.
  3. Im Anschluss daran wird vim63/src/Makefile – falls noch nicht geschehen – angepasst (s.o.). Weitere Änderungen müssen nicht vorgenommen werden.
  4. Die Kompilation und Installation erfolgt ebenfalls mit make und sudo make install.

Bei diesem Vorgehen wird vim während der Installation nicht in /usr/local/bin kopiert. Stattdessen wird im Verzeichnis vim63/src ein Package namens Vim.app erzeugt, das an den gewünschten Ort kopiert werden kann (z.B. ~/Applications).

Innerhalb dieses Packages (Vim.app/Content/MacOS/Vim) befindet sich die normale Terminal-Version, die auch über das Terminal gestartet werden kann. Möchte man allerdings mit dem Terminal arbeiten, ist die Installation einer Version ohne GUI (wie oben beschrieben) in /usr/local/bin sinnvoll, weil dieses Verzeichnis Teil von $PATH ist (dadurch kann Vim aus jedem Verzeichnis heraus gestartet werden).

Alternativ kann man eine fertig kompilierte GUI-Version von vim 6.3 (für Mac OS 10.3) auch bei mir herunterladen (kompiliert mit den Optionen: --with-features=huge, --enable-multibyte, --enable-perlinterp).