Możesz odczytać nieprzetworzone dane z tagów do bufora z taglistą(). Następnie możesz wyszukać w buforze inne kryteria, które Cię interesują, w tym nazwy klas i części katalogu plików.
Tak, aby mieć bardziej wyrafinowane wyszukiwania dla „MyTag” Spróbuj:
:new | put =taglist(\"^mytag$\")
aby uzyskać jak najwięcej informacji, należy użyć Exuberant Ctags.
Po wyszukaniu danych, które chcesz, zobaczysz nazwę pliku skojarzonego z tagiem ustalonej z „pliku”: oraz tekst wiersza z przedrostkiem „cmd”:.
Umieszczenie go w funkcji z kodem do upiększania i obsłużyć bufor odpowiednio:
" List information about matching tags in a buffer
function! BrowseTags(tagStr)
new [Tag Brower]
setlocal buftype=nofile bufhidden=wipe nobuflisted noswapfile nowrap
put =taglist(a:tagStr)
" Beautify it a little
normal 1G
while search('^{', 'W')
call setline(".", split(getline("."), "\\(\\(}$\\)\\|\\('\\w\\+':\\)\\)\\@="))
endw
normal 1G
endfunc
Można użyć połączeń BrowseTags („^ MyTag $”) uruchomić funkcję dokładną mecz z myTag lub użyj wyrażenia regularnego, aby uzyskać podobne dopasowania.
Mimo że nigdy tego nie robiłem, pisanie różnych poleceń zautomatyzować najczęstsze zadania bez otwierania bufora nie jest trudne.
Dzięki, Dave, ale myślę, że mnie nie rozumiesz, a może nie wyjaśniłem dobrze. Zobaczmy: Wyobraź sobie, że otagowałem kilka klas (klasa 1, klasa 2, klasa 3 itd.), Które mają metodę foo(). Jeśli mam ten kod: $ class3_object = new class3(); class3_object-> foo(); Chciałbym pójść _directly_ do znacznika odpowiadającego klasie 3, ponieważ jest to klasa obiektu "class3_object". Javi – ziiweb