Best configured vim

Ich bin Softwareentwickler und arbeite in all meinen Projekten mit Vim als Sourcecode-Editor. In den kommenden Beiträgen möchte ich vorstellen, wie man heute durch Vim und gut integrierte Software-Werkzeuge schnell und gut (Achtung: Selbsteinschätzung!) Software entwickeln kann. Ich programmiere in den Programmiersprachen Python und PHP, dabei meist auf meinem Macbook, manchmal an Linux PCs und ebenso häufig remote auf Linux-Servern. Mein Anspruch an meine Entwicklungsumgebung ist, dass ich in allen Fällen mit einer nahezu identischen Umgebung und den selben Werkzeugen arbeiten kann – das ist mit dem Editor Vim leicht zu erreichen.

Das Vim-Erbe

Bis vor einigen Jahren war es beim Arbeiten mit Vim üblich, sich seine ~/.vimrc-Datei und den ~/.vim-Ordner zu konfigurieren und per CSV/SVN/Git zu versionieren. Dabei wurden diverse Erweiterungen, Colorschemes und sonstige Skripte in ein paar Ordnern unterhalb von ~/.vim verteilt und konnten nie wieder schmerzfrei aktualisiert oder entfernt werden.

Dann kam pathogen als „Poor man’s package manager“1, erlaubte die Installation von Erweiterungen in einem jeweils eigenen Unterverzeichnis in ~/.vim und generierte die diversen Suchpfade aus diesen „verteilten“ Installationen. Vim kam im 21. Jahrhundert an. Pathogens „Nachfolger“ vundle erweiterte dieses Package-Management um ein solides Git- und GitHub-Bewusstsein. Packages können nun einfach von GitHub installiert und vor allem via git aktualisiert werden.

Vim-Distributionen

Auf Basis dieses neuen Vundle-GitHub-Ökosystem entwickelten sich Vim-Distributionen, durch die bequem Vim-Best Practices und aktuelle Workflows von jedem interessierten Vim-Anwender genutzt werden können. Diese Distributionen bringen eine Vorauswahl von Bundles sowie eine ausgewogene Basiskonfiguration (vimrc) mit. Der Anwender kann in Anpassungsskripten Änderungen vornehmen, die automatisch in die vorgefertigte vimrc eingebunden werden. Ich möchte ohne die Vim-Erweiterungen fugitive, python-mode und syntastic sowie einem zeitgemäßen Colorscheme (ich nutze molokai) nicht mehr sein.

In den vergangenen ~3 Jahren habe ich die drei Distributionen spf13-vim, janus und vimified (in
dieser Reihenfolge) getestet. Spf13-vim ist sehr perfektionistisch und umfangreich. Auf meinem drei Jahre alten Mac fühlte sich Vim schon recht zäh an. Janus gefiel mir sehr, das Projekt will vundle jedoch nicht einsetzen, solange es keine Package-Versionen unterstützt. Dadurch wurde das Installieren zusätzlicher Packages unbequem. So bin bei vimified gelandet.

Vimified

Der Charme der vimified-Distribution ist, dass Konfigurationspakete (vimified_packages) vordefiniert sind. Damit
skaliert das System gut und der geneigte Anwender muss sich nicht mit den einzelnen Installationspaketen beschäftigen. Durch Eintragen von

let g:vimified_packages = ['general', 'color', 'python',
      'fancy', 'css', 'js', 'os', 'html', 'coding']

in ~/.vim/local.vimrc habe ich festgelegt, welche Packages ich aktiviert haben möchte2. Die vimified_packages sind auf der
Projektseite beschrieben. Jedes vimified_packages beschreibt eine Anzahl vim-Bundles und zugehörige Konfiguration, die in vimrc geladen werden. Meine Konfiguration findet Ihr in

Zum Aufschlauen in Sachen Vim bieten sich Drew Neil’s Screencasts auf vimcasts.org sowie das Buch „Practical Vim“ (eBook oder Papier) vom selben Autor an. Beide Quellen bieten sich für ein „immer-mal-wieder-ein-bisschen-üben“ an.

Im nächsten Teil dieser Mini-Serie wird es um Softwarewerkzeuge zum Programmieren in PHP gehen.


  1. Zitat von der pathogen-Website ↩︎
  2. Voreinstellung ist, alle Packages außerdem auch die Packages ruby, clojure, haskell zu laden. ↩︎