RSS

Die 20 besten Plugins für Vim

24 Feb

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 Screencast

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

fuzzyfinder

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

commandt

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

lustyexplorer

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

surround.vim

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

Align.vim ist ein Alignment-Plugin, mit dem du im Visual-mode markierte Blöcke per :Align gewünschterSeperator ordnen kannst.

NERD_Tree.vim

NERDTree ScreenshotNerdtree

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

buftabs.vim

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 :)

fugitive Screencast

gundo.vim

gundo.vim

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

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

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.

 
Leave a comment

Geschrieben von - 24. Februar 2011 in Ubuntu, vim

 

Schlagwörter:

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Log Out / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Log Out / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Log Out / Ändern )

Verbinde mit %s

 
Follow

Bekomme jeden neuen Artikel in deinen Posteingang.