Domanda

ctags -R dirname, vim -t tag è molto potente, dal momento che dopo questi due comandi, ora è possibile avere la possibilità di navigare tra il codice di quel progetto, per esempio si può saltare solo al codice di certa funzione utilizzando: tag functionName, ma questa operazione hanno ancora alcuni problemi, come è solito caso che un codice sorgente potrebbe includere alcune chiamate di funzione come va_start (), mentre questo codice non è incluso nella directory dirname, quindi indexs non vengono generati per questa funzione, e non si può navigare alla definizione di va_start (), ma è necessario per passare a questa funzione? come trovare il codice? Io non so nemmeno dove va_start () è definito esattamente. Come faccio a generare indice ctags per le funzioni di sistema o la funzione di terze parti?

È stato utile?

Soluzione

Quando si utilizza "ctags -R dirname" siete l'indicizzazione solo simboli per il contenuto della directory dirname.

Cosa accade è che "va_args" è definito nella stdarg.h che è un'intestazione di libreria standard C.

che si incontrano lo stesso problema ogni volta che verrà usato un simbolo da una libreria esterna.

Quindi, se si vuole avere a disposizione tutti i simboli, che hai, in aggiunta al vostro programma, per anche indicizzare il codice per librerie esterne.

Vuol dire:

  1. Il codice sorgente deve essere disponibile (che non è sempre il caso)

  2. Una volta che avete trovato sul vostro sistema in cui il file è, dovrebbe essere analizzata per essere inclusi nel file "tag".

Quindi, una volta che avete eseguito ctags -R projectPath è possibile eseguire ctags -Ra /usr/include di aggiungere tutti i contenuti di / usr / include al file di tag.

Più in generale si vuole fare qualcosa di simile ctags -Ra librarySourcePath per ottenere tutti i simboli utilizzati nel programma disponibile.

Modifica: Fate attenzione però:! / Usr / include potrebbe includere un sacco di file, in modo la dimensione del file di tag si può aumentare notevolmente, e in conseguenza, ogni volta che si cerca un simbolo per saltare ad esso, potrebbe essere molto più lento

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top