Bạn có thể đọc dữ liệu thô từ thẻ vào bộ đệm với danh sách thẻ(). Sau đó, bạn có thể tìm kiếm trong bộ đệm cho các tiêu chí khác mà bạn quan tâm, bao gồm tên lớp và các phần của thư mục tệp.
Vì vậy, để có một tìm kiếm tinh tế hơn cho "mytag" try:
:new | put =taglist(\"^mytag$\")
Để có được thông tin mới nhất, hãy chắc chắn để sử dụng Exuberant Ctags.
Sau khi bạn tìm kiếm dữ liệu mà bạn muốn, bạn sẽ thấy tên tập tin kết hợp với thẻ bắt đầu bằng 'filename': và văn bản dòng bắt đầu bằng 'cmd':.
Đưa nó trong một hàm với một số mã để làm đẹp và xử lý bộ đệm đúng cách:
" 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
Bạn có thể sử dụng gọi BrowseTags ("^ myTag $") để chạy các chức năng cho một chính xác phù hợp với myTag hoặc sử dụng một số cụm từ thông dụng để nhận các kết quả tương tự.
Mặc dù tôi chưa bao giờ bận tâm làm điều đó, nhưng không quá khó để viết các lệnh khác nhau tự động hóa các tác vụ phổ biến nhất của bạn mà không cần mở bộ đệm.
Nguồn
2011-06-06 22:18:51
Cảm ơn Dave, nhưng tôi nghĩ bạn không hiểu tôi hoặc có thể tôi đã không giải thích đúng. Để xem: hãy tưởng tượng tôi đã gắn thẻ một số lớp (class1, class2, class3, v.v.) có phương thức foo(). Nếu tôi có mã này: $ class3_object = new class3(); class3_object-> foo(); Tôi muốn chuyển _directly_ sang thẻ tương ứng với lớp 3, vì đó là lớp của đối tượng "class3_object". Javi – ziiweb