2009-06-05 19 views
5

Quando utilizzo ctags per generare tag di STL e utilizzare tali tag con Vim, non è a conoscenza dell'ambito dell'ambito. Se uso ctrl-] andrà al primo tag che corrisponde, anche se non è corretto. Per esempio:Ottenere ctags + Vim per lavorare con l'ambito?

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

se digito Ctrl] mentre il cursore si trova sopra push_back (100), che mi porterà alla realizzazione del Bitvector di push_back posto della lista di.

Per quanto ne so, ctags non è a conoscenza dell'ambito ma so che ci sono alcuni plugin Vim che usano ctag come OmniCppComplete. Qualcuno è a conoscenza di eventuali plug-in o impostazioni che risolveranno questo problema?

risposta

4

Quali opzioni stai passando a ctags? --extra=+q può aiutare ...

+0

-R --C++ - tipi = + p = + --fields ias --extra = + q --language-forza = C++ Così sto già facendo ... –

+0

hmm .. Grazie per il l'upvote comunque. Sono un noob ctags/omnicppcomplete, mi è appena capitato di averlo appena installato ed eseguito :) –

+0

@JohnWeldon è --extra = + q sempre necessario? qual è il suo effetto collaterale? – hugemeow

1

Puoi opzionalmente fare "gctrl-]" (notare la 'g'). Questo ti aprirà un elenco di posizione relativa del tag. Dovrai sceglierne uno e vim ti porterà nella posizione del file.

Vimp jumps Fornire migliori prospettive di salti disponibili. Puoi saltare a una dichiarazione locale o globale o qualsiasi altra cosa.

E in effetti, alcuni plug-in cambiano la funzione responsabile per portarti alla definizione e quindi, offrirti un sistema GoToDeclaration migliore.

Problemi correlati