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 in meinem Git-Repository enthalten, das heruntergeladen werden kann.
Dafür muss Git installiert sein:
1
| sudo apt-get install git-core |
sudo apt-get install git-core
Mein Repository kann ins .vim
-Verzeichnis heruntergeladen werden:
1
2
| cd ~/.vim
git clone git://github.com/DSIW/vim.git |
cd ~/.vim
git clone git://github.com/DSIW/vim.git
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
pathogen
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
| ~/.vim/bundle
├── gundo
│ ├── doc
│ ├── plugin
│ ├── site
│ └── tests
│ ├── bundled
│ └── vim_test
├── vim-easygrep
│ ├── doc
│ └── plugin
├── vim-latexsuite
│ ├── compiler
│ ├── doc
│ ├── ftplugin
│ │ ├── latex-suite
│ │ └── tex
│ ├── indent
│ └── plugin
├── vim-supertab
│ ├── doc
│ └── plugin
├── vim-surround
│ ├── doc
│ └── plugin
└── visincr
├── autoload
├── doc
└── plugin |
~/.vim/bundle
├── gundo
│ ├── doc
│ ├── plugin
│ ├── site
│ └── tests
│ ├── bundled
│ └── vim_test
├── vim-easygrep
│ ├── doc
│ └── plugin
├── vim-latexsuite
│ ├── compiler
│ ├── doc
│ ├── ftplugin
│ │ ├── latex-suite
│ │ └── tex
│ ├── indent
│ └── plugin
├── vim-supertab
│ ├── doc
│ └── plugin
├── vim-surround
│ ├── doc
│ └── plugin
└── visincr
├── autoload
├── doc
└── plugin
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
| ln -s ~/.vim/bundle/<plugin-Ordner>/.../Datei oder Ordner ~/<zielordner oder -datei> |
ln -s ~/.vim/bundle/<plugin-Ordner>/.../Datei oder Ordner ~/<zielordner oder -datei>
Download
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.
Download
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.
Download
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.
Download
unicode
Damit ist das Einfügen auch von speziellen Unicodezeichen möglich.
Download
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.
Download
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 (<leader>PP)).
Man muss bei der Installation darauf achten, dass die Datei “pullproto.pl” im ~/.vim
-Verzeichnis liegt oder verlinkt wurde.
Download
showmarks
Man kann mit vim
auch Marken setzen. Dieses Plug-in ermöglicht das Anzeigen dieser Marken auf der linken Seite.
Download
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.
Download
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 "#"
.
Download
nerdtree
Das Navigieren durch die Verzeichnisse in einer Baumstruktur ist möglich.
Download
fugitive
Das Versionsverwaltungssytem Git wird durch dieses Plug-in in VIM implementiert bzw. die Arbeit damit wird vereinfacht.
Download
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.
Download
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.
Download
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
| [...]
[b :bprevious
]b :bnext
[B :bfirst
]B :blast
[...]
[q :cprevious
]q :cnext
[Q :cfirst
]Q :clast |
[...]
[b :bprevious
]b :bnext
[B :bfirst
]B :blast
[...]
[q :cprevious
]q :cnext
[Q :cfirst
]Q :clast
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"> => <foo bar="baz">
Download
align
Ein weiteres Ausrichtungs-Plug-in (siehe Tabular), das auch das Ausrichten von LaTeX-Tabellen ermöglicht.
Download
AutoAlign
Automatisiertes Ausrichten von Variablenzuweisungen.
Download
LaTeX-Suite
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.
Download
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
| @ [4] 3 hours ago
|
| o [3] 4 hours ago
| |
o | [2] 4 hours ago
|/
o [1] 4 hours ago
|
o [0] Original |
@ [4] 3 hours ago
|
| o [3] 4 hours ago
| |
o | [2] 4 hours ago
|/
o [1] 4 hours ago
|
o [0] Original
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.
Download
searchcomplete
Damit ist die Vervollständigung von Zeichen auch bei einer Suche möglich.
Download
fswitch
Das Navigieren unter anderem zwischen cpp-Dateien und den dazu gehörigen Header-Dateien ist damit möglich.
Download
xml
Das Hinzufügen, Ändern und Löschen von Tags ist die hauptsächliche Aufgabe dieses Plug-ins.
Download
xptemplate
Snippets sind sehr hilfreich, wenn man Code schreibt. Damit ist es nicht mehr nötig, u.a. syntaktische Klammern zu setzen.
Download
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.
Download
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
| int a;
int a;
int a; |
wird zu:
1
2
3
| int a;
int b;
int c; |
Download
omnicppcomplete
Schreibt man C++ Quellcode und möchte wissen, welche Attribute in einem Objekt vorkommen, sollte man dieses Plug-in nutzen.
Download
easygrep
Siehe meinen Artikel zu diesem Plug-in.
Download
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.
Download
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.
Download
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.
Download
csscolor
Der Hintergrund des Farbcodes in einem CSS nimmt die Farbe dessen an.
Download
jcommenter
Kommentieren von Java-Quellcode insbesondere für Javadoc.
Download
vimshell-ssh
Zugreifen auf eine externe VIM-Sitzung über SSH.
Download
ShowPairs
Das Hervorheben von passenden Klammern ist hilfreich, um den Überblick zu behalten.
Download
ragtag
Nützliche Tastenkombinationen (Mappings) für HTML, XML, php uvm.
Download
checklist
Plug-in, um leicht eine Checkliste zu verwalten. Das Hinzufügen einer neuen Aufgabe und das Löschen dieser ist die Hauptaufgabe.
Download