"Bao gồm tìm kiếm" là một trong những công cụ như vậy:
[I and ]I " search current buffer and included files for
" the word under the cursor, skipping comments
:ilist foo " same as above but for 'foo'
:ilist /foo " same as above but for a word containing 'foo'
Liên quan đến "bao gồm tìm kiếm", "tìm kiếm định nghĩa" cũng thú vị:
[D and ]D " search current buffer and included files for
" the definition of the symbol under the cursor
:dlist foo " same as above but for definition of 'foo'
:dlist /foo " same as above but for a definition containing 'foo'
:dlist / " list all definitions from the current buffer
" and included files
Cả hai công cụ đều phụ thuộc vào nhiều tùy chọn khác nhau có thể được thiết lập bởi các plugin filetype của bạn.
Xem :help include-search
.
Bạn cũng có thể sử dụng gd
và gD
như các phiên bản nhẹ của [D
và ]D
.
Xem :help gd
.
Trong bộ đệm hiện tại, lệnh dưới đây sẽ liệt kê mọi định nghĩa hàm và số dòng của nó:
:g/func/#
Xem :help :g
.
:grep
và :vimgrep
cũng hữu ích, nếu chỉ vì kết quả của chúng được đưa vào danh sách quickfix có thể được điều hướng cùng với :cn
, :cp
và được hiển thị trong cửa sổ quickfix rất tiện dụng.
Xem :help :grep
, :help :vimgrep
và :help quickfix
.
Nói về danh sách QuickFix / cửa sổ, tôi đã viết chức năng này (dựa trên công việc của những người khác) để hiển thị các kết quả [I
, ]I
, :ilist
, [D
, ]D
và :dlist
trong danh sách QuickFix / cửa sổ. YMMV tất nhiên.
Mặc dù không hoàn toàn là một công cụ điều hướng, tôi thấy cửa sổ xem trước rất hữu ích để xem chữ ký của chức năng tôi đang làm việc.
Xem :help preview-window
.
Mà nói…
Vim không biết gì về mã của bạn ngoài một vài mẫu biểu thức chính quy có thể phù hợp hoặc không phù hợp với phong cách mã hóa của bạn hoặc bất cứ điều gì. Điều này có nghĩa là điều hướng mã được thực hiện tốt hơn với sự trợ giúp của các công cụ bên ngoài như ctags, cscope hoặc GNU GLOBAL.