2009-06-05 6 views
5

Cuando uso ctags para generar etiquetas de la AWL y uso esas etiquetas con Vim, no se tiene conocimiento del alcance. Si uso ctrl-] irá a la primera etiqueta que coincida, incluso si eso es incorrecto. Por ejemplo:¿Cómo obtener ctags + Vim para trabajar con scoping?

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

si escribo Ctrl] mientras el cursor está sobre push_back (100), que me llevará a la implementación de la bitvector de push_back lugar de la lista de.

Por lo que sé ctags no tiene conocimiento del alcance pero sé que hay algunos complementos de Vim que usan ctags que son, como OmniCppComplete. ¿Alguien está al tanto de los complementos o configuraciones que arreglarán esto?

Respuesta

4

¿Qué opciones está pasando a ctags? --extra=+q puede ayudar ...

+0

-R --C++ - types = + p --fields = + iaS --extra = + q --language-force = C++ Así que ya lo estoy haciendo ... –

+0

hmm .. Gracias por el voto al revés de todos modos. Soy un novato ctags/omnicppcomplete, acabo de instalar y ejecutar eso :) –

+0

@JohnWeldon es --extra = + q siempre es necesario? ¿Cuál es su efecto secundario? – hugemeow

1

Opcionalmente puede hacer "gctrl-]" (observe la 'g'). Esto le abrirá una lista de la posición relativa de la etiqueta. Tendrás que elegir uno y vim te llevará a la posición de archivo.

Vimp jumps Le ofrecemos mejores perspectivas de saltos disponibles. Puede saltar a local o global o cualquier declaración.

Y efectivamente, algunos complementos cambian la función a cargo para llevarlo a la definición y así, darle un mejor sistema GoToDeclaration.

Cuestiones relacionadas