Ich nutze hauptsächlich VIM
als den Editor meiner Wahl. Übrigens ist dieser Artikel natürlich auch in diesem Editor erstellt worden.
Dies ist eine Übersicht meiner installierten Plug-ins, die ich in ein paar wenigen Worten beschreibe. Über nähere Informationen empfehle ich das Folgen des Links oder das Schreiben eines Kommentars. Meine beliebtesten Plug-ins werde ich näher in einem anderen Artikel beschreiben.
Meine komplette Konfiguration ist in meinem Git-Repository enthalten, das heruntergeladen werden kann. Dafür muss Git installiert sein:
$ sudo apt-get install git-core
Mein Repository kann ins .vim
-Verzeichnis heruntergeladen werden:
$ mkdir -p ~/.vim
$ git clone git://github.com/DSIW/vim.git ~/.vim
$ ln -s ~/.vim/vimrc ~/.vimrc
$ ln -s ~/.vim/gvimrc ~/.gvimrc
Danach kann das .git
-Verzeichnis gelöscht werden. Darin werden nur für das Repository wichtige Dateien gespeichert.
Eine Alternative ist es, sich das Repository-Archiv herunterzuladen und zu
entpacken.
Plug-ins
Update vom 2012-04-03: Da sich meine Plugins immer wieder ändern, die ich nutze, empfiehlt es sich auch meine Konfiguration in meinem Repository anzuschauen.
pathogen
Update vom 2012-02-24:
Ich nutze nun nicht mehr pathogen
als Plug-in-Verwaltung, sondern vundle
. Siehe meinen Artikel darüber.
Normalerweise wird die Ordnerstruktur des Plug-in-Archivs 1:1 in den ~/.vim
-Ordner übernommen. Dabei werden meistens
Dateien in den Ordner plugin
und doc
kopiert. Bei vielen implementierten Plug-ins ist eine gute Übersicht nicht mehr
gegeben. Man weiß nicht, ob dieses Helpfile auch zu diesem Plug-in gehört, oder nicht.
Es gibt eine tolle Möglichkeit, um eine gute Übersicht zu erhalten. Dazu wird das Plug-in pathogen
in den Ordner
plugin
kopiert und die Konfigurationsdatei ~/.vimrc
angepasst. Danach erstellt man sich die Ordnerstruktur
~/.vim/bundle/<pluginname>
. Nun wird einfach der Inhalt des Plug-in-Archivs in einen Unterordner von bundle
kopiert.
Siehe meinen Auszug aus meinem bundle
-Verzeichnis:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
Hinweis: Manchmal werden von Plug-ins absolute Pfade von irgendwelchen Dateien oder Ordner benötigt. Dann setzt man
einfach einen symbolischen Link zu der Datei oder zu dem Verzeichnis im bundle
-Ordner. Dies geschieht mit:
1
|
|
vjde
Dies ist eine Art IDE für die Programmiersprache Java. Im Helpfile stehen allerdings noch weitere Sprachen, die wohl implementiert sind oder die noch implementiert werden müssen.
csv
CSV-Dateien haben eine tabellarische Form, bei der die Spalten durch ein Trennzeichen dargestellt werden. Durch dieses Plug-in ist eine tabellarische Darstellung gegeben und weitere Verwaltungsfunktionen sind implementiert.
SudoEdit
Durch dieses Plug-in ist es möglich, zum Beispiel eine Datei, die im Ordner /etc
enthalten ist und somit root-Rechte
braucht, diese zu verändern oder zu schreiben, auch dann, wenn man vim
nicht mittels sudo
aufgerufen hat. Natürlich
wird die Sicherheit nicht beeinträchtigt - eine Passworteingabe ist dennoch erforderlich.
unicode
Damit ist das Einfügen auch von speziellen Unicodezeichen möglich.
supertab
Dadurch wird die Tab-Taste erweitert und dient auch der Autocompletion. Man muss nicht mehr [Strg]+[N]
oder
[Strg]+[P]
drücken, die Tab-Taste erledigt das ganze.
protodef
Wer mit C++ Programme schreibt, der kennt das ständige Kopieren der Funktionssignatur aus dem Header-File in die
cpp-Datei. Dieses Plug-in macht das ganze auf Kommando (pullproto.pl
im ~/.vim
-Verzeichnis liegt oder verlinkt wurde.
showmarks
Man kann mit vim
auch Marken setzen. Dieses Plug-in ermöglicht das Anzeigen dieser Marken auf der linken Seite.
tabular
Das Ausrichten von dem Zuweisungsoperator bei Variablenzuweisungen ist dadurch unter anderem möglich. Es kann jedes Zeichen angewandt werden. Eine eher tabellarische Form des Quellcodes erhöht die Übersichtlichkeit.
nerdcommenter
Kommentieren im Quellcode unterschiedlichster Sprachen ist die Stärke des Plug-ins. Durch das Kommando <leader>ci
wird
eine Zeile auskommentiert, wenn diese schon kommentiert ist, wird diese wieder einkommentiert. In einer C-Datei oder
Java-Datei ist das Kommentar-Zeichen //
, in Bash-Skripten ist dieses ein #
.
nerdtree
Das Navigieren durch die Verzeichnisse in einer Baumstruktur ist möglich.
fugitive
Das Versionsverwaltungssytem Git wird durch dieses Plug-in in VIM implementiert bzw. die Arbeit damit wird vereinfacht.
repeat
Normalerweise kann man den letzten Befehl durch Drücken des Punkts wiederholen. Leider funktioniert das nicht bei Plug-ins. Durch dieses Plug-in sollte es möglich sein, das zu tun. In meinem Fall ist das leider nicht so.
surround
Das nachträglich Umschließen von Wörtern oder anderen Zeichenketten mit Anführungszeichen oder Klammern ist damit ein Kinderspiel. Es lassen sich unter anderem auch Zeilen durch HTML-Tags umschließen.
unimpaired
Dieses Plug-in setzt einige Tastenkombinationen für bestimmte Befehle. Ein Paar sind hier aufgeführt:
1 2 3 4 5 6 7 8 9 10 |
|
Eine nette Funktion ist das Einfügen von Leerzeilen vor oder nach der Curserposition. Dies ist auch durch das Drücken einer Zahl wiederholbar. Das Verschieben einer Zeile oder das Encoding und Decoding von URLs oder von XML ist möglich:
<foo bar="baz"> wird zu <foo bar="baz"> </foo>
align
Ein weiteres Ausrichtungs-Plug-in (siehe Tabular), das auch das Ausrichten von LaTeX-Tabellen ermöglicht.
AutoAlign
Automatisiertes Ausrichten von Variablenzuweisungen.
LaTeX-Suite
Update vom 2012-02-24:
Ich nutzte auch die latex-suite
nicht mehr, sondern Automatic LaTeX Plug-in (ATP).
Ich schreibe meine Dokumentationen nur noch mit dem Textsatzsystem LaTeX. Dieses hervorragende Plug-in ermöglicht ein schnelles Schreiben von Texten, ohne, dass man sich immer mit den Formatierungsbefehlen herumschlagen muss. Durch einfache Tastenfolgen wird ein Formatierungstag geöffnet. Es ist damit auch möglich markierte Textstellen komfortabel zu formatieren. Natürlich gibt es Snippets für Tabellen, Figuren und Bildern, um wenige Beispiele zu nennen.
gundo
In VIM wird die Geschichte nicht linear gespeichert. Das heißt, dass man bei einer veränderten Zwischenänderung (Punkt 3 im Beispiel) auch wieder an den aktuellen Anfang kommt.
Beispiel:
1 2 3 4 5 6 7 8 9 |
|
Dieses Plug-in visualisiert die Verästelungen in der History der Änderungen einer Datei sehr schön. Durch dieses Plug-in ist ein Unterschied zu den verschiedenen Versionene einer Datei leicht erkennbar, da diese Veränderungen hervorgehoben werden.
searchcomplete
Damit ist die Vervollständigung von Zeichen auch bei einer Suche möglich.
fswitch
Das Navigieren unter anderem zwischen cpp-Dateien und den dazu gehörigen Header-Dateien ist damit möglich.
xml
Das Hinzufügen, Ändern und Löschen von Tags ist die hauptsächliche Aufgabe dieses Plug-ins.
xptemplate
Snippets sind sehr hilfreich, wenn man Code schreibt. Damit ist es nicht mehr nötig, u.a. syntaktische Klammern zu setzen.
matchit
Durch die Taste %
gelangt man zur gegenseitigen Klammer bei einem Klammerpaar. Durch dieses Plug-in ist das unter
anderem auch bei XML-, HTML- und LaTeX-Tags möglich.
visincr
Das Inkrementieren (Wert = Wert+1) von Buchstaben oder Zahlen (auch römisch) ist damit kein Problem. Es werden die Werte
blockweise markiert und durch das Eingeben von :IA
werden die Buchstaben in jeder Zeile erhöht (siehe Beispiel).
Beispiel:
1 2 3 |
|
wird zu:
1 2 3 |
|
omnicppcomplete
Schreibt man C++ Quellcode und möchte wissen, welche Attribute in einem Objekt vorkommen, sollte man dieses Plug-in nutzen.
easygrep
Siehe meinen Artikel zu diesem Plug-in.
sqlcomplete
Eine Autocompletion für SQL-Sprachen wie Oracle, MySQL, etc. wird damit bereit gestellt. Das dynamische Vervollständigen von Datenbankeinträgen ist mit einem weiteren Plug-in (dbext.vim) für die Datenbankanbindung möglich.
taglist
Damit kann man sich alle Variablen, Methoden, Funktionen, etc. in einem eigenen Fenster anzeigen lassen. Durch dieses lässt sich navigieren, nach einem Bestätigen springt man direkt zur Deklaration.
c
Plug-in für die Programmiersprache C. Damit werden Snippets und zum Beispiel das Einfügen von personalisierten Kommentaren bereit gestellt. Das Kompilieren, Linken und Ausführen eines C-Programms ist damit möglich. Fehler werden in einem Quickfix-Fenster angezeigt.
csscolor
Der Hintergrund des Farbcodes in einem CSS nimmt die Farbe dessen an.
jcommenter
Kommentieren von Java-Quellcode insbesondere für Javadoc.
vimshell-ssh
Zugreifen auf eine externe VIM-Sitzung über SSH.
ShowPairs
Das Hervorheben von passenden Klammern ist hilfreich, um den Überblick zu behalten.
ragtag
Nützliche Tastenkombinationen (Mappings) für HTML, XML, php uvm.
checklist
Plug-in, um leicht eine Checkliste zu verwalten. Das Hinzufügen einer neuen Aufgabe und das Löschen dieser ist die Hauptaufgabe.