Das Taglist Plugin für Vim ist ein praktisches Tool zum programmieren. Es listet die einzelnen Funktionen (je nach Programmiersprache auch Klassen, Packete und Membervariablen) eines Programms in einem eigenen Splitscreen auf. Diese sind nach Dateien sortiert und man kann so sehr schnell zu einer gewünschten Funktion springen.
Damit das Plugin funktioniert muss das Paket exuberant-ctags installiert sein. Danach kann man die Datei taglist.vim ins
Pluginverzeichnis (~/.vim/plugin) kopieren.
Wenn nun eine Datei mit Quellcode geöffnet ist, kann man das Taglist Plugin durch den Befehl :TList aktivieren, woraufhin sich auf der rechten Seite der Splitscreen mit den Funktionen öffnet. Mit STRG+w w kann man zwischen den Splitscreens hin und her wechseln (Ich habe mir diese Tastenkombination auf + gelegt). Mit j und k kann man nun in den Funktionen hoch und runter scrollen. Drückt man bei der gewünschten Funktion ENTER, so springt der Cursor automatisch wieder auf den Quelltext an der Position, wo die gewählte Funktion beginnt.
Da sich beim Sprung zu einer Funktion die entsprechende Datei im aktuellen Buffer öffnet, empfiehlt es sich, Buffer statt Tabs zu verwenden.
Praktisch ist es, sich ein autocommand für Quelltexte zu erstellen, so dass die Taglist automatisch beim Öffnen von Quelltexten geladen wird.
Dafür wird eine Funktion benötigt, welche die Dateiendung überprüft und bei entsprechenden Endungen die Taglist öffnet. Das folgende Beispiel öffnet die Taglist für Java und Perl Dateien:
function OpenTlist() let myfile = expand("%") let myfiletype = expand("%:e") if myfiletype == "pl" || myfiletype == "java" Tlist end endfunction
Nun noch das autocommand:
au BufRead * call OpenTlist()
Beides wird in die ~/.vimrc geschrieben.
Nun kann man sich in der ~/.vimrc noch ein Mapping anlegen um die Taglist mit z.B. F3 ein- und auszublenden:
map <F3> :TlistToggle<cr>
Wenn man Programmiert, dann schreibt man natürlich auch neue Funktionen. Diese werden von der Taglist leider nicht sofort erkannt. Daher ist es sinnvoll ein Mapping zu definieren um die Taglist zu updaten. Das folgende Mapping legt das Updaten der Taglist auf F4 (die Datei wird dabei direkt gespeichert):
map <F4> :w<cr>:TlistUpdate<cr>
Folgende Beiträge könnten Dich auch interessieren:
Schlagworte: Scripte, Splitscreen, taglist, Vim








Gibt es einen großen Unterschied zu NERDTree?
Der NERDTree zeigt Dateien an, während Taglist die Funktionen innerhalb einer Datei anzeigt.
TagList ist ja auch schon etwas angestaubt. Ich fahre mit TagBar (http://www.vim.org/scripts/script.php?script_id=3465) persönlich deutlich besser.
Hallo Matthias,
vielen Dank für den Tipp. TagBar war mir bisher unbekannt.
Habe mir TagBar jetzt mal etwas angesehen. Scheint wirklich sinnvoller zu sein. Man kann die obigen Konfigurationseinstellungen jedoch auch dafür nutzen. Es müssen lediglich die entsprechenden Kommandos angepasst werden. Also
TagbarOpenstattTListin der Funktion um TagBar automatisch zu öffnen:TagbarTogglestatt:TlistTogglefür das Mapping zum Ein- und AusblendenViele Grüße
zimon