2009-06-05 27 views
5

Khi tôi sử dụng ctags để tạo các thẻ của STL và sử dụng các thẻ đó với Vim, nó không nhận biết được phạm vi. Nếu tôi sử dụng ctrl-] nó sẽ đi đến thẻ đầu tiên phù hợp, ngay cả khi đó là không chính xác. Ví dụ:Nhận ctags + Vim để làm việc với phạm vi?

std::list<int> mylist; 
mylist.push__back(100); 

nếu tôi gõ Ctrl-] trong khi con trỏ là trên push_back (100), nó sẽ đưa tôi đến thực hiện của bitvector của push_back thay vì danh sách của.

Theo như tôi biết ctags không nhận thức được phạm vi nhưng tôi biết có một số plugin Vim sử dụng ctags được, chẳng hạn như OmniCppComplete. Có ai biết về bất kỳ plugin hoặc cài đặt nào sẽ sửa lỗi này không?

Trả lời

4

Bạn có tùy chọn nào để chuyển sang thẻ ctags? --extra=+q có thể giúp ...

+0

-R --C++ - loại = + p --fields = + iaS --extra = + q --language-force = C++ Vì vậy, tôi đã làm điều đó ... –

+0

hmm .. Cảm ơn bạn đã upvote anyway. Tôi là một ctags/omnicppcomplete noob, tôi chỉ xảy ra để có chỉ cần cài đặt và chạy đó :) –

+0

@JohnWeldon là --extra = + q luôn luôn cần thiết? tác dụng phụ của nó là gì? – hugemeow

1

Bạn có thể tùy ý thực hiện "gctrl-]" (chú ý 'g'). Thao tác này sẽ mở cho bạn danh sách vị trí thẻ tương đối. Bạn sẽ phải chọn một và vim sẽ đưa bạn đến vị trí tập tin.

Vimp jumps Cho bạn cái nhìn tốt hơn về các bước nhảy có sẵn. Bạn có thể nhảy đến địa phương hoặc toàn cầu hoặc bất kỳ tuyên bố nào.

Và một cách hiệu quả, một số plugin thay đổi chức năng phụ trách để đưa bạn đến định nghĩa và do đó, cung cấp cho bạn hệ thống GoToDeclaration tốt hơn.

Các vấn đề liên quan