Wie man vielleicht in der Vergangenheit mitbekommen hat, bin ich bekennender Vim-Fan. Vor ein paar Tagen wurde nach über zwei Jahren Entwicklungszeit die Version 7.3 des polarisierenden Editors veröffentlicht. Diese ist natürlich noch nicht in den offiziellen Paketquellen vorhanden. Auch ein PPA konnte ich noch nicht ausfindig machen. Das ist aber nicht schlimm - erfordert nur ein wenig Handarbeit
.
Zunächst habe ich mir die aktuellen Sourcen von der Projektseite heruntergeladen. Dort gibt es auch die Versionen für verschiedene andere Betriebssysteme, unter anderem auch für Windows.
Vor der Installation der neuen Version habe ich die bereits installierten Vim-akete entfernt. Alte und neue Version sollen sich ja nicht in die Quere kommen:
sudo apt-get purge vim-* sudo apt-get autoremove --purge
Der folgende Befehl lädt die gepackten Quelldateien direkt ins eigene Home-Verzeichnis:
wget -P ~/ ftp://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2
Diese muss im nächsten Schritt entpackt werden:
tar xvfj ~/vim-7.3.tar.bz2 cd ~/vim73
Anschließend könnte ich direkt mit dem Kompilieren beginnen. Allerdings setze ich auch gern GVim ein. Dazu muss ich Vim allerdings mit den entsprechenden Optionen konfigurieren. Leider bemängelt Vim fehlende Optionen für den GUI-Einsatz nicht. Auf dieser Seite wird eine Liste der notwendigen Pakete genannt. Ob die in Summe notwendig sind, kann ich nicht mit Sicherheit sagen. Nach deren Installation, ca. 100 MB Downloadgröße, funktioniert zumindest auch GVim. Bei der heutigen, verschwenderischen, Festplattengröße ist mir das aber auch einerlei — Hauptsache am Ende funktioniert es. Dass das Pakte build-essential installiert ist, setze ich voraus.
sudo apt-get install build-essential libncurses5-dev
sudo apt-get install libncurses5-dev libgnome2-dev \ libgtk2.0-dev libatk1.0-dev libbonoboui2-dev \ libcairo2-dev libx11-dev libxpm-dev libxt-dev
Nachfolgend empfiehlt das Wiki, ein make distclean aufzurufen. Damit werden alle Dateien gelöscht, die ein configure (welches u.U. im Vorfeld gelaufen ist) angelegt hat.
Im nächsten Schritt folgt der normale Dreisatz des Kompilierens. Wichtig sind die angegebenen Optionen beim configure–Aufruf:
./configure --with-features=huge --enable-gui=gnome2 make
An dritter Stelle würde nun sudo make install zum Installieren des Pakets stehen. Diese ersetze ich aber durch
sudo checkinstallCheckinstall erzeugt mir ein DEB-Paket und installiert es auch direkt. Die Fragen von checkinstall beantworte ich einfach mit Enter — das ist für den Hausgebrauch absolut ausreichend.
Installiert man Vim mit Hilfe der Paketverwaltung, so legt diese automatisch einen symbolischen Link von vim auf vi. So lässt sich der Editor auch mit dem Befehl:
vistarten und man muss nicht immer vim tippen. OK, das ist jetzt nicht sooo die Ersparnis — aber normalerweise sagt ja auch kein Mensch Vim wenn er Vim meint, sondern fast immer, historisch gewachsen, Vi.
Nachdem ich jahrelang immer nur vi geschrieben habe, soll sich das natürlich auch nicht ändern. Mann ist ja ein Gewohnheitstier
. Daher setze ich einen entsprechenden symbolischen Link:
sudo ln -s /usr/local/bin/vim /usr/bin/vi
Dabei ist wichtig zu wissen, dass die ausführbare Datei des manuell installierten Vim nicht in /usr/bin/(vi) liegt. Ohne den symbolischen Link könnte eventuell vorhandene Verknüpfungen nicht vernünftig funktionieren, wenn sie gegen den absoluten Pfad gelinkt sind.
Vorsicht ist an dieser Stelle geboten, wenn noch die ältere Version von der Paketverwaltung installiert ist. Dann kann kein symbolischer Link erstellt werden, da die Datei ja bereits existiert.
Alternativ kann man auch einen Alias in der .bashrc des Users setzen — oder oder oder…
Da ich vorher auch die Einstellung für den sensible_editor, beim Aufruf von crontab geschieht dies z.B., vorgenommen habe, ersetze ich auch die damals getroffene Verlinkung mit einer symbolischen Verknüpfung:
sudo ln -s /usr/local/bin/vim /usr/bin/vim.basic
Ein Highlight der neuen Version, für mich, ist die Möglichkeit, auch nach dem Beenden von Vim Änderungen rückgängig machen und wiederherstellen zu können. Dafür bedarf es aber noch zweier Arbeitsschritte. Zum einen habe ich ein Verzeichnis angelegt, in dem die Änderungen gespeichert werden sollen:
mkdir ~/.vim/undo
Zum anderen muss das Feature aktiviert und das eben angelegte Verzeichnis als Speicherort definiert werden. Das geschieht, oh Wunder, in der vimrc.
vi ~/.vimrc
Dort müssen folgende Einträge hinzufügt werden:
" Undo-File setzen set undofile set undodir=/home/BENUTZER/.vim/undo
Danach können Änderungen an (Text-) Dateien auch nach dem Schließen des Editors noch rückgängig gemacht werden. Das ist bei Änderungen an Konfig-Dateien (vor allem bei einem Trial-and-Error–Part) superpraktisch.
Gerade das Kompilieren von Vim mit Unterstützung der GUI erfordert etwas mehr Engagement. Das persistente Un– und Redo ist dieses aber allemal wert. Ich möchte es jedenfalls nicht mehr missen. Außerdem verschlüsselt Vim nun auch seine Swap-Datei. In manchen Umgebungen kann dies von Vorteil sein.
Anstatt eines symbolischen Links könntest Du auch — wenn deine Distribution dies unterstützt — mit update-alternatives –install (siehe Link oben) arbeiten.
Damit kann man die Links
/usr/bin/vi , /etc/alternatives/vi
kontrollieren und einen eigenen Link (auf /usr/local/bim) systemweit aktivieren.
[…] BeiträgeVim in Version 7.3 veröffentlichtWiki: Vim-Reihe […]
[…] Linux wird übrigens meistens der VIM (vi Improved) eingesetzt. Von vim ist gerade wieder eine neue Version […]
Danke für den Artikel — hat mir sehr geholfen. Unter Ubuntu 8.04 gab es allerdings ein Problem mit dem checkinstall Befehl (file not found /usr/local/bin/vim).
“make install” lief stattdessen sauber durch.