Przegląd klas, metod i zmiennych w vimie z pluginem TagList

Ten wpis został napisany dawno temu i może być już nieaktualny.

Plugin TagList dodaje do vima funkcjonalność przeglądania listy klas, metod, zmiennych i innych słów kluczowych indeksowanych przez ctags. TagList pokazuje tagi w kontekście edytowanych plików i grupuje je po typie. Do tagów możemy skakać, otwierać je w nowym oknie lub zakładkach. Plugin TagList w vim

Instalacja

Jak zwykle pobieramy źródła ze strony pluginów vima i rozpakowujemy je do katalogu ~/.vim. Dodatkowo warto utworzyć indeks plików pomocy. W tym celu otwieramy vima i wpisujemy:

:helptags ~/.vim/doc

Teraz po wpisaniu w edytorze :help taglist.txt uzyskamy pomoc na temat pluginu. Uwaga: Plugin TagList używa indeksu generowanego przez exuberant ctags, który musimy najpierw wygenerować. Wyjaśniłem jak to zrobić w artykule "Skakanie do definicji klas, metod i zmiennych w vimie przy pomocy exuberant ctags".

Użycie

Okno TagList otwieramy wpisując:

:TlistToggle

Wpisanie polecenia ponownie lub wciśnięcie q zamknie okno. Oczywiście bezustanne wpisywanie komend nie jest ani wygodne, ani wydajne. Dużo lepiej jest używać skrótów. Aby zmapować polecenie na ctrl+l dodajemy poniższą definicję do pliku ~/.vimrc:

nmap <silent> <c-l> :TlistToggle

Konfiguracja

TagList posiada wiele opcji konfiguracyjnych, które możemy ustawić w ~/.vimrc, aby dostosować plugin do swoich preferencji. Ich przegląd dostępny jest w pliku pomocy:

:help taglist.txt

Osobiście skonfigurowałem sobie tytuł okna tak, aby zawierał nazwę pliku i słowo kluczowe nad którym jest aktualnie kursor:

set title titlestring=%<%f\ %([%{Tlist_Get_Tagname_By_Line()}]%)

Ustawiłem także kilka innych opcji, aby dostroić TagList do swoich potrzeb:

let Tlist_Use_Horiz_Window=0
let Tlist_Use_Right_Window = 1
let Tlist_Compact_Format = 1
let Tlist_Exit_OnlyWindow = 1
let Tlist_GainFocus_On_ToggleOpen = 1
let Tlist_File_Fold_Auto_Close = 1
let Tlist_Inc_Winwidth = 0
let Tlist_Close_On_Select = 1
let Tlist_Process_File_Always = 1

Jakub Zalas

Jakub Zalas

Architekt, Programista, Trener