Question

ctags -R DIRNAME, vim -t balises est très puissant, car après ces deux commandes, vous pouvez maintenant avoir la possibilité de naviguer entre le code de ce projet, par exemple, vous pouvez simplement sauter au code de certaines fonctions en utilisant: tag functionName, mais cette opération ont encore quelques pièges, comme cas habituel qu'un code source pourrait inclure certains appels de fonctions telles que va_start (), alors que ce code ne figure pas dans le répertoire dIRNAME, donc indexs ne sont pas générés pour cette fonction, et vous ne pouvez pas naviguer à la définition de va_start (), mais il est nécessaire pour accéder à cette fonction? comment trouver ce code? Je ne sais même pas où va_start () est défini exactement. Comment puis-je générer index ctags pour les fonctions du système ou la fonction de tiers?

Était-ce utile?

La solution

Lorsque vous utilisez « ctags -R DIRNAME » vous ne symboles indexation pour le contenu du répertoire dirname.

Qu'arrive-t-il que « va_args » est défini dans stdarg.h qui est un en-tête de la bibliothèque standard C.

Vous allez rencontrer le même problème chaque fois que vous allez utiliser un symbole d'une bibliothèque externe.

Donc, si vous voulez avoir tous les symboles disponibles, vous avez, en plus de votre programme, d'indexer aussi le code pour les bibliothèques externes.

Cela signifie:

  1. Le code source doit être disponible (ce qui est toujours le cas)

  2. Une fois que vous avez trouvé sur votre système où le fichier est, il doit être analysé à inclure dans votre fichier « tag ».

Alors une fois que vous avez exécuté ctags -R projectPath vous pouvez exécuter ctags -Ra /usr/include pour ajouter tout le contenu de / usr / include à votre fichier de balises.

De manière plus générale que vous voulez faire quelque chose comme ctags -Ra librarySourcePath pour obtenir tous les symboles utilisés dans votre programme disponible.

Edit: Attention toutefois: / usr / include pourrait inclure un bon nombre de fichiers, de sorte que la taille de votre fichier tag peut augmenter considérablement, et comme conséquence, chaque fois que vous recherchez un symbole pour sauter à lui, il pourrait être beaucoup plus lent

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top