DSIW

Alles was interessant ist... (Linux, Programmierung, Datenschutz, Medien, uvm.)

Überblick: vim-Plug-ins

| Comments

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
~/.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>

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 (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

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 &lt;foo bar=&quot;baz&quot&gt; &lt;/foo&gt;

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

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.

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

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

Comments