Vim ist von Haus aus geil, aber man vermisst viele Features aus aktuellen Editoren/IDEs bei einer frischen Vim-Installation. Doch keine Angst, es gibt für Vim tausende Plugins, die jedes erdenkliche Feature in Vim ermöglichen.
Könnte dich auch interessieren: Vim konfigurieren per .vimrc,
Meine aktuelle Vim-Config inkl. Plugins auf github.
Vim Plugins installieren
Wie installier ich die Plugins unter Vim? Einfach die jeweilige .zip runterladen, im Terminal per unzip beispielplugin.zip entpacken, in das gerade entpackte Verzeichnis wechseln und den kompletten Inhalt inklusive Unterverzeichnisse per cp * -R ~/.vim/ ins plugin-Verzeichnis von Vim kopieren. Beim nächsten Start von Vim sind die Plugins sofort verfügbar.
Falls das Plugin als .vba (Vimball) vorliegt, einfach die vba-Datei in Vim öffnen und :so % eingeben. Damit wird das Plugin automatisch entpackt und ist nach dem Neustart von Vim verfügbar.
Plugin Dokumentationen in die Vim Hilfe einbinden
Achtung: viele Plugins haben in ihrem Verzeichnis ein Unterverzeichnis doc, in dem Hilfedateien zur Benutzung und Konfiguration des Plugins liegen. Du musst das Verzeichnis einmalig in Vim zu den Vim-Hilfen hinzufügen:
:helptags $VIMRUNTIME/doc
Danach kannst du in Vim die Hilfedateien aufrufen:
:h pluginname.txt
Die besten Plugins für den Vim-Editor:
rails.vim
rails.vim macht dein Vim zur Rails-IDE. Viele Rails-spezifische Features wie z.B. geht man per :R zur Datei, die mit dem Code unter dem Cursor verbunden ist. :Rmodel bringt dich zum Model der aktuellen Datei, :Rmodel user bringt dich zum Usermodel. Die Dokumentation ist über 1100 Zeilen lang, also das Plugin kann viel :)
File-Launcher fuer Vim
FuzzyFinder
Der FuzzyFinder besticht/erschlaegt durch seine Vielzahl an Modes, unter anderem koennt ihr folgendes damit suchen/oeffnen:
- Files
- Buffer
- Tags
- Most recent used
- Directories
Diese Modi gibt es auch noch einmal mit Spezifikationen wie z.B. FindFileInCurrentBuffer, TagsInOpenBuffers, etc., etc… Natuerlich gibt es auch eine rekursive Dateisuche, die allerdings etwas gewoehnungsbefuerftig ist: man gibt als erstes den (Teil-)Namen der gewuenschten Datei an und “refined” danach mit einem oder mehreren Argumenten. Beispiel: ich suche die Datei settings.py im Verzeichnis django/todo/. Nun rufe ich die rekursive Suche auf, tippe sett;to . Dadurch listet das Plugin alle Dateien auf, die “sett” im Dateinamen haben und in einem Ordner liegen, in dessen Namen “to” vorkommt. Man kann beliebig oft “refinen”, aber meist reicht schon das erste “Refining” um die gewuenschte Datei zu finden. Der Separator fuers Refining ist per default das “;”, man kann es aber auch einfach in ” ” (also Leertaste) oder mehr Unixlike in “/” aendern. Aus obiger Suche wird dann sett/to … Finde ich schluessiger, da ich Linux-User bin.
Anmerkung: Um die aktuellste Version des FuzzyFinder-Plugins zu bekommen, klickt einfach auf die Ueberschrift. Die Version auf Vim.org/scripts scheint veraltet/nicht mit Pathogen zu funktionieren.
Command-T
Command-T ist wie der File-Launcher von Textmate, nur ein bissel geiler :)
Ein bissel geiler deshalb, weil du alles (sowohl Pfad als auch Dateinamen) nacheinander schreiben kannst.
Also: du drückst die ToggleTaste von Command-T und ein Fenster fährt hoch. Jetzt kannst du drauf lostippen und vom aktuellen Verzeichnis aus rekursiv Dateien aufrufen. Dabei sucht Command-T automatisch die besten Ergebnisse. Beschreiben kann man es nicht, besser zeigen. Deshalb hier der Screencast.
LustyExplorer
Der LustyExplorer wartet mit 4 Modi auf:
- FileSystem Explorer
- FileSystem Explorer from Here
- Buffer Explorer
- Buffer Grep
Ganz nett, allerdings weder schneller als Command-T, noch bessere/mehr Features als der FuzzyFinder.
Trotzdem zum Screencast.
Fazit
Wer einen wirklich schnellen File-Launcher mit rekursiver Suche und separatorfreiem Patterning haben will, sollte Command-T nehmen. Wer viel Funktion sucht und alles in einem will, dem sei der FuzzyFinder ans Herz gelegt. Ich finde die Refining Methode vom FF etwas “uncool”, ansonsten waere er mein absoluter Favorit! Einfach beide ausprobieren, kost’ ja nix :)
snipMate.vim
Screencast (ab Minute 1:10)
Vim mit snippets, uiuiui. Erklärung: snippets sind Code-Schnipsel, die beim Programmieren unglaublich viel an Arbeit abnehmen. Einfach den Screencast angucken :)
Weil die Standard-snippets von snipMate beim Start von Vim Duplikatsprobleme verursacht haben, hab ich alle Dateien im Ordner ~/.vim/snippets gelöscht und das snippet-Paket von scooloose genommen, funktioniert reibungslos! Alternativ könnt ihr auch eigene snippets bauen, dazu z.B. für PHP einfach unter ~/.vim/snippets/php/euertrigger.snippet einen eigenen snippet anlegen. euertrigger ist hierbei mit dem gewünschten trigger zu ersetzen, sprich wenn das Snippet per for<TAB> aktiviert wird, heisst die Datei for.snippet. In die Datei selber kommt dann einfach der PHP-code, der durch das <TAB>-Drücken erscheinen soll. Und die TAB-Stops baut ihr mit ${1},${2} usw. Ganz isi.
Folgende Sprachen unterstützt euer Textmate-like Vim danach von Haus aus:
- C
- CSS
- HTML
- Java
- JavaScript
- PHP
- Python
- Ruby
- Ruby on Rails
- Zend
surround,vim
Wörter bzw. ganze Zeilen oder Texte mit Tags/Klammern umschliessen oder Tags/Klammern entfernen/ändern? Mit surround.vim kein Problem. Mächtiges Plugin, definitiv anschauen!
repeat.vim
repeat.vim ermöglicht es, per Wiederholungstaste (also “.”) auch auf die letzte Pluginaktion zuzugreifen. Hast du z.B. durch das surround.vim-Plugin ein Wort per csw” mit Anführungszeichen eingeschlossen, kannst du die Aktion per “.” beliebig oft wiederholen.
6. align.vim
Align.vim ist ein Alignment-Plugin, mit dem du im Visual-mode markierte Blöcke per :Align gewünschterSeperator ordnen kannst.
NERD_Tree.vim
Ein Filesystem-Tree in Vim, wie geil is das denn? Das Plugin wird per :NERDTree aufgerufen und kann (falls gewünscht) komplett über die Tastatur gesteuert werden. Für eine komplette Übersicht auf der Seite oder in der doc oder den Screencast (ab 7:05) gucken.
delimitMate.vim
Angenehmes Programmieren bedeutet für mich – neben einem Editor mit getrennten modes :) – die Automation von unnötigen Schritten. delimitMate.vim ist ein Vim-Plugin für Automation: es ergänzt automatisch schliessende Klammern, Anführungzeichen usw. hinter der aktuellen Cursorposition. Sprich, ihr tippt eine öffnende { und es erscheint sofort eine passende } hinter eurem Cursor und ihr könnt zwischen den Klammern tippen. Ein Traum!
matchit.vim bzw. matchit-ruby.vim
Damit werden die Klammern, zwischen denen man mit % hin und herspringen kann, um HTML- und XML- bzw. ruby-Tags wie <div>,<li>,if,end usw. erweitert. Ausserdem kann man eigene Tags festlegen.
unimpaired.vim
unimpaired.vim bietet 16 nützliche Mappings. Diese benutze ich auch in meiner .vimrc für die Zeilentausch-Binds.
buftabs.vim
Nach dem BufExplorer und dem minibufexplorer bin ich jetzt beim buftabs.vim angelangt. buftabs.vim zeigt dir die offenen Buffer in vim/gVim an. 2 Dinge sind an buftabs cool: 1. verbraucht das Plugin keinen zusätzlichen Platz wie z.B. der minibufexplorer, weil die Buffer unter der Statuszeile angezeigt werden (vgl. Screenshot). 2. zeigt es die Buffer nur an, wenn a) Vim gestartet wird, b) ein neuer Buffer geöffnet wird oder c) zwischen Buffern gewechselt wird. Es empfiehlt sich, die markierte Zeile in deine .vimrc zu kopieren, weil sonst der ganze Pfad vor den Dateinamen erscheint und bei langen Dateinamen nur noch eine Datei angezeigt werden kann.
fugitive.vim
Git Support in Vim, echt gut gemacht… Go for it :)
gundo.vim
gundo.vim visualisiert die undo-history unter vim. Einfach ausprobieren bzw. den Screencast gucken!
SearchComplete.vim
SeachComplete.vim ermöglicht die Tab-Autocompletion beim Suchen nach / oder ?…
ZenCoding.vim
Mächtiges Plugin für HTML und CSS. Die Features aufzuzählen würde ewig dauern, deshalb definitiv das Tutorial und/oder den Screencast fuer das Plugin (etwas weiter unten auf der Seite) anschauen!
taglist.vim
taglist.vim erweitert dein Vim um einen Sourcecodebrower. Mit taglist kannst du zu Klassen und Methoden navigieren.
NERDCommenter.vim
Automatisches auskommentiern von Code je nach Filetype. Extrem praktische Befehle, wie z.B. “Kopiere alles, bevor du es auskommentierst”. Dabei kann man natürlich entweder im Commandmode mit einer Zahl vor den Kürzeln oder im Visualmode mehrere Zeilen kommentieren.
css.vim
css.vim hinterlegt in CSS-Dateien Farbcodes mit der jeweiligen Farbe. Ziemlich gutes Plugin :)
Beachten sollte man allerdings, dass die css.vim nicht in ~/.vim/plugin/ sondern in ~/.vim/after/syntax kommt.
Fazit
So, das waren die Vim-Plugins, mit denen ich im Moment arbeite. Wie sieht es bei euch aus? Habt ihr Lieblingsplugins? Dann würde ich mich über einen Kommentar freuen.











