Skakanie do definicji klas, metod i zmiennych w vimie przy pomocy exuberant ctags
Dzięki exuberant ctags możemy skakać do definicji klas, metod, zmiennych i innych konstrukcji językowych w vimie. Narzędzie potrafi wygenerować plik z indeksem słów kluczowych (tagów) dla jednego spośród 41 wspieranych języków programowania. Indeks ten jest używany w edytorach typu vim do szybkiego odnajdywania powiązanych słów.
Instalacja
Instalacja nie powinna stanowić problemu na żadnym Linuksowym systemie. W Ubuntu pakiet exuberant ctags znajduje się w domyślnych repozytoriach. Do instalacji możemy użyć Centrum Oprogramowania Ubuntu lub otworzyć terminal i wpisać:
sudo aptitude install exuberant-ctags
Generowanie indeksu
Zanim będziemy mogli korzystać z dobrodziejstw ctagów musimy wygenerować plik z indeksem. Użyjemy do tego komendy ctags (to alias dla ctags-exuberant).
Aby wygenerować indeks najpierw musimy zmienić katalog roboczy na główny katalog projektu. Następnie rekrusywnie go indeksujemy:
cd ~/workspace/projects/sympal ctags -R --languages=php .
Uwaga: 'man ctags' powie nam więcej o dostępnych opcjach.
Uwaga: Dawno temu Matthew Weier O'Phinney opisał jak używać ctags z PHP: exuberant ctags with PHP in vim. Użył kilku opcji, które nie wydają mi się już potrzebne. Prawdopodobnie wsparcie dla PHP zostało od tego czasu poprawione.
Podstawy
Podstawowe wykorzystanie tagów sprowadza się do dwóch komend:
- ctrl-] zabierze nas do deklaracji powiązanej ze słowem pod kursorem. Nie jest istotne w jakim pliku się ona znajduje. Słowo wrzucane jest także na stos tagów.
- ctrl-t zabierze nas do poprzedniego tagu na stosie.
Zauważmy, że komendy można poprzedzić liczbą. Spowoduje to jej wielokrotne wykonanie. Okazuje się to szczególnie przydatne jeśli jeden tag występuje wielokrotnie w naszych źródłach, a my chcemy skoczyć do konkretnego wystąpienia (2ctrl-]). Od czasu do czasu będziemy też potrzebowali wrócić do któregoś z rzędu tagu wstecz (4ctrl-t).
Możemy od razu otworzyć wybrany tag w vimie przy pomocy opcji -t:
vim -t sfGuardUser
Zaawansowane techniki
Niektóre z komend operujących na stosie tagów:
- pop skacze na stosie wstecz
- tag skacze na stosie naprzód
- tags wyświetla stos tagów
Niektóre z komend listy opasowań tagów:
- tselelect wyświetla listę tagów, które pasują do podanego argumentu lub słowa pod kursorem
- g] działa jak ctrl-], ale pozwala wybrać numer wystąpienia słowa
- :tnext, :tprevious, :tfirst i :tlast skaczą po występieniach słowa
Niektóre z komend wyszukiwania:
- [i i ]i wyświetlają pierwszą linię zawierającą tag pod i za kursorem
- [I i ]I wyświetlają wszystkie linie zawierające tag pod i za kursorem
- [ ctrl-i i ] ctr-i skaczą do pierwszej linii zawierającej tag pod i za kursoerm
Uwaga: Wpisując w vimie :help tags-and-searches otrzymamy szczegółowy opis funkcjonalności oferowanych przez tagi.
Przydatne Strony
Wideo
Komentarze
- Napisz komentarz
















