2009-06-05 3 views
5

Когда я использую ctags для генерации тегов STL и использую теги с Vim, он не осведомлен о области видимости. Если я использую ctrl-], он перейдет к первому тегу, который соответствует, даже если это неверно. Например:Получение ctags + Vim для работы с областью определения?

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

если я типа ctrl-], когда курсор находится над push_back (100), он будет считать меня к реализации bitvector о push_back вместо списка.

Насколько я знаю, ctags не знает о сфере видимости, но я знаю, что есть некоторые плагины Vim, которые используют ctags, такие как OmniCppComplete. Кто-нибудь знает о каких-либо плагинах или настройках, которые будут исправлять это?

ответ

4

Какие варианты вы переходите к ctags? --extra=+q может помочь ...

+0

-R --C++ - types = + p --fields = + iaS --extra = + q --language-force = C++ Так что я уже делаю это ... –

+0

hmm .. Спасибо за в любом случае. Я ctags/omnicppcomplete noob, я просто только что установил и запустил это :) –

+0

@JohnWeldon --extra = + q всегда нужно? каков его побочный эффект? – hugemeow

1

Вы можете по желанию выполнить «gctrl-]» (обратите внимание на «g»). Это откроет вам список относительной позиции тега. Вам нужно будет выбрать один, и vim приведет вас к позиции файла.

Vimp jumps Дайте вам лучшие перспективы доступных прыжков. Вы можете перейти к локальному или глобальному или другому объявлению.

И, фактически, некоторые плагины меняют функцию, чтобы привести вас к определению, и поэтому дайте вам лучшую систему GoToDeclaration.

Смежные вопросы