2009-03-18 15 views
17

vim + ctags funziona bene per i progetti C, poiché C non consente il sovraccarico della funzione e, in generale, incoraggia il prefisso manuale dei simboli a causa di strutture di scoping rudimentali.vim, ctags e identificatori identificati con nome

In C++, le funzioni sono spesso sovraccaricate e sovrascritte in sottoclassi. Questo fa sì che vim salti sempre al tag nella classe sbagliata su "Ctrl + ]". C'è un modo per farlo comportarsi in modo un po 'più intelligente? So che posso portare una lista con le alternative dei tag, ma è follemente fastidioso dover sempre elencare questo elenco e trovare il tag necessario per numero ogni volta che voglio saltare alla definizione.

+0

piacerebbe vedere una soluzione utile a questo problema. Sono meno colpito da questo, ora uso Viemu sempre di più, ma mi riesce ancora quando passo a progetti non VC. – RedBlueThing

+0

Grande domanda, mi piacerebbe anche sapere la risposta a questo. – Dan

risposta

12

C'è anche "tagNext" per passare al prossimo tag (o: tn <entrare>)

6

so due soluzioni per il tuo porblem (sembra si sapeva troppo):

  • Usa: tselect e tag name o g] con il cursore sul tag per ottenere l'elenco dei tag abbinati e goto su tag per numero dalla lista;
  • mappa: tnext o: tprev su tasti di scelta rapida (ho mappato su F6 e F7) e trova la funzione necessaria manualmente;
8

Io uso tjump molto. Supporta il completamento delle schede che è utile. Se vengono trovati più tag, verrà fornito un elenco da cui selezionare, se ne viene trovato uno solo, passerà direttamente al tag (a differenza di tselect).

Usage:

:tj foo 
Problemi correlati