Eclipse auf meinem PC wurde immer langsamer, die Anforderungen von Eclipse (nur mit PDT-Plugin) anscheinend immer höher. Schon bei fünf offenen Tabs reagierte das Programm deutlich langsamer und es machte keinen Spaß mehr zu arbeiten.

Deshalb hab ich mich zum Umstieg zu vim entschieden.

Kurze Einführung in vim

Um es anderen leichter zu machen, will ich hier kurz erklären, welche Plugins unter vim das Leben erleichtern. Wer noch nie mit vim gearbeitet hat (auch keine kleinen Änderungen) sollte sich zunächst mit der grundsätzlichen Steuerung vertraut machen. Es gibt verschiedene Modi:

  • normal mode: keine Eingabe, sondern herumsteuern des Cursors im Quelltext
  • insert mode: jetzt kann man Text tippen
  • visual mode: markieren von Codestücken

Je nach Modus hat man verschiedene Steuerungsmöglichkeiten. Ich fand die Vim Quick Reference Card sehr übersichtlich, sie zeigt einem viele Kommandos im normal mode.

Ich will hier keine große Referenz zu vim-Befehlen geben, aber kurz:

  • Von normal in den insert mode kommt man mit a, i, s oder o. Alle Zeichen haben unterschiedliche Funktionen, probier sie einfach aus. Vielleicht ist die Liste auch noch nicht vollständig
  • Vom insert mode zurück in den normal mode kommt man mit Strg+c
  • Im normal mode kann man mit : (Doppelpunkt) Befehle anfangen, wichtig hier sind :w (Speichern) und :q (Schließen). Man kann auch :wq tippen (speichern und schließen)

vim zur IDE aufwerten mit Plugins

Das schöne an vim ist, dass man es sehr leicht mit eigenen Plugins ergänzen kann. Um hier eine Struktur zu erhalten, bietet sich ein Plugin-Manager an, z.B. vundle. Auf der github-Seite steht schon beschrieben, wie man ihn sich einrichtet. Dann muss man die github-URLs oder offiziellen Plugin-Namen nur noch in die .vimrc eintragen und anschließen :BundleInstall ausführen und vundle kümmert sich um die komplette Verwaltung.

Um vim wirklich mächtig zu machen, bieten sich einige Plugins an:

  • Nerdtree: Bietet eine Baumansicht der Verzeichnisstruktur ausgehend vom Verzeichnis, wo man vim gestartet hat. Von hier aus kann man dann die Dateien öffnen (auch im split screen)
  • Syntastic: Bietet Syntax-Check für sehr viele verschiedene Sprachen, wenn man die richtigen Programme installiert hat und den Syntax-Check in der vimrc aktiviert hat.
  • ctrlp.vim: Bietet eine rekursive Freitextsuche nach allen Dateien unterhalb des aktuellen Ordners an.
  • vim-snipmate und snipmate-snippets: Mit SnipMate kann man sich Abkürzungen definieren, die dann auf Tab-Druck zu den vollständigen Ausgaben umgeformt werden. Dabei sind sogar Platzhalter möglich, die man durchtabben kann. snipmate-snippets ist eine Sammlung von vorgefertigten Snippets für verschiedene Sprachen.

Es gibt noch ein paar weitere Plugins, die ich in meinem vim eingebunden habe, aber nicht so oft benutze. Oder solche, die sich nur für bestimmte Sprachen (in meinem Fall PHP) eignen.

Schneller Zugriff durch keymappings

Erwähnen muss ich auf jeden Fall auch die Keyboard-Mappings. Man kann sich alle Kombinationen frei belegen. Vermeiden sollte man es natürlich, wenn diese Kombination schon von vim verwendet wird ;)

Ich habe mir z.B. die Tastenfolge ,n so eingerichtet, dass dann NerdTree mit dem Verzeichnisbaum geöffnet wird – und ich benutze es sehr häufig.

Dies kann man so erreichen:

" let mapleader setzt den sogenannten leader key, das macht man nur einmal
" nmap setzt eine Tastenfolge auf einen Befehl (in diesem Fall :NERDTreeToggle<cr>)
let mapleader = ","
nmap <leader>n :NERDTreeToggle<cr>
I do not maintain a comments section. If you have any questions or comments regarding my posts, please do not hesitate to send me an e-mail to blog@stefan-koch.name.