2009-06-05 3 views
5

Wenn ich Ctags verwende, um Tags der STL zu generieren und diese Tags mit Vim zu verwenden, ist Scoping nicht bekannt. Wenn ich ctrl- verwende, wird es zum ersten passenden Tag gehen, auch wenn das falsch ist. Zum Beispiel:Getting Ctags + Vim mit Scoping arbeiten?

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

wenn ich tippe ctrl-], während sich der Cursor über push_back (100) ist, dauert es mir die Umsetzung der Bitvektor von push_back statt Liste des.

Soweit ich weiß, ist Ctags Bereich nicht bewusst, aber ich weiß, es gibt einige Vim-Plugins, die Ctags verwenden, die sind, wie OmniCppComplete. Kennt jemand Plugins oder Einstellungen, die das beheben?

Antwort

4

Welche Optionen werden an Ctags übergeben? --extra=+q kann helfen ...

+0

-R --C++ - Arten = + p --fields = + ias --Extra = + q --language-force = C++ So bin ich schon, das zu tun ... –

+0

hmm .. Danke für das Upvote sowieso. Ich bin ein ctags/omnicppcomplete noob, ich habe gerade zufällig gerade installiert und ausgeführt, dass :) –

+0

@ JohnWeldon ist --Extra = + q immer benötigt? Was ist sein Nebeneffekt? – hugemeow

1

Sie können optional "gctrl-]" (beachten Sie das 'g'). Dies öffnet Ihnen eine Liste der relativen Tag-Position. Sie müssen einen auswählen und vim bringt Sie zur Dateiposition.

Vimp jumps Gibt Ihnen bessere Perspektiven der verfügbaren Sprünge. Sie können zur lokalen oder globalen oder einer anderen Deklaration springen.

Und effektiv, einige Plugins ändern die Funktion verantwortlich, um Sie zur Definition zu bringen und so, geben Sie ein besseres GoToDeclaration System.