2009-06-05 7 views
5

Lorsque j'utilise ctags pour générer des tags de la liste STL et utiliser ces tags avec Vim, il n'est pas conscient de la portée. Si j'utilise ctrl-], il ira à la première balise qui correspond, même si c'est incorrect. Par exemple:Obtenir ctags + Vim pour travailler avec la portée?

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

si je tape ctrl] lorsque le curseur est sur push_back (100), il me faudra à la mise en œuvre de push_back de la place de la liste vecteur de bits de. Pour autant que je sache, ctags n'est pas conscient de la portée, mais je sais que certains plugins Vim utilisent des ctags, comme OmniCppComplete. Est-ce que quelqu'un est au courant des plugins ou des paramètres qui vont résoudre ce problème?

Répondre

4

Quelles sont les options que vous transmettez à ctags? --extra=+q peut aider ...

+0

-R --C++ - types = + p --fields = + iaS --extra = + q --langue-force = C++ Donc, je le fais déjà ... –

+0

hmm .. Merci pour l'upvote de toute façon. Je suis un ctags/omnicppcomplete noob, je viens juste d'avoir juste installé et exécuté ça :) –

+0

@JohnWeldon est --extra = + q toujours nécessaire? quel est son effet secondaire? – hugemeow

1

Vous pouvez éventuellement faire "gctrl-]" (notez le 'g'). Cela vous ouvrira une liste de position de l'étiquette relative. Vous devrez en choisir un et vim vous amènera à la position du fichier.

Vimp jumps Donnez de meilleures perspectives sur les sauts disponibles. Vous pouvez passer à la déclaration locale ou globale ou autre.

Et effectivement, certains plugins changent la fonction en charge pour vous amener à la définition et ainsi, vous donner un meilleur système GoToDeclaration.

Questions connexes