10
votes

Comment obtenir des CTAG travaillant à l'intérieur de Vim

Je suis nouveau à Vim et je voulais obtenir l'intégration CTAGS travailler afin que je puisse plus facilement naviguer dans un grand projet Java.

J'ai tiré la fermeture à glissière de la source de la source et l'extraite, mais d'ici je ne sais pas comment le faire fonctionner avec Vim

Toute aide pour un utilisateur VIM novice serait génial!


1 commentaires

Les réponses publiées ont tous leurs mérites individuels, mais notent l'option -r - il est beaucoup plus courant d'invoquer des CTAGs de manière récursive sur une structure de répertoire entière que de l'exécuter sur des fichiers individuels.


5 Réponses :


4
votes

C'est ce que je fais:

  1. ctans -n -f [sortie] [source] pour générer les balises (Remarque: le -n s'applique à moi mais peut ne pas être nécessaire pour votre usage)
  2. EXEC "SET TAGS =". [SORTIE] INTÉRIEUR DE .VIMRC Pour laisser VIM devenir conscient des tags

    Edit: J'utilise

    • EXUBERANT CTAGS 5.5.2
    • vim 6.1

      Info supplémentaire:


6 commentaires

Pourquoi remplacez-vous le nom de sortie par défaut? (Vous n'auriez pas besoin de remplacer la valeur de l'option Tags dans Vim si vous avez utilisé la valeur par défaut.) Pourquoi utilisez-vous -n au lieu de laisser les CTAG utilisez sa sortie EXCMD normale? (Le format normal est beaucoup plus robuste contre les changements de votre code source.)


J'ai plusieurs versions que je travaille dans et je peux "changer" la libération que je travaille. Spécification d'un nom de fichier me permet de basculer automatiquement le fichier de balise que je travaille depuis qu'il est basé sur une variable d'environnement. Le -n est utilisé depuis que je travaille avec C code et basé sur le manuel < / a> c'est déjà ce qui est utilisé quand même.


Avoir un autre regard sur le manuel. -n n'est pas par défaut. Si vous ne le spécifiez pas, il utilise le motif, pas le numéro (à l'exception des balises de définition de macro). Assez facile pour vérifier par vous-même. Et comme le dit le manuel, l'utilisation de nombres signifie que si vous modifiez le code source, cela va passer à la mauvaise ligne.


La valeur par défaut de ce que je lis est mixte que tel que l'étage est essentiellement des numéros pour C code de ce que j'ai lu. Suis-je mal interpréter mal?


Ahh, il semble que motif est utilisé pour Mixte et uniquement pour les macros C. Vous voudrez peut-être lire les avantages / inconvénients de chaque méthode et décider de ce qui est le mieux. Je pense que je choisis numéros en raison des entrées en double, mais je ne me souviens pas pour certains. Pour référence, en utilisant numéros le fichier de balise est ~ 9.2MB sinon il est ~ 13.4MB si la taille du fichier est du tout pertinente.


Ouais, les chiffres ont beaucoup d'avantages, mais je trouve que je change beaucoup de code source, les chiffres manquent une quantité décente de l'heure. Je ne suis pas vraiment préoccupé par quelques MB, juste les CTAG travaillent bien. Je peux totalement comprendre préférant les chiffres - si vous renommez des choses, ils vont toujours travailler, tandis que les motifs ne le feront pas.



5
votes

Vous devez exécuter la commande CTAGS avec les fichiers source comme arguments. Cela créera un fichier de balises contenant toutes les informations. Ensuite, vous pouvez ouvrir un fichier avec Vim et E.G. Appuyez sur Ctrl -] lorsque sur une ligne avec une fonction pour passer au code de cette fonction. Si VI n'est pas démarré dans le même répertoire que le fichier de balise, vous pouvez la définir avec : Définir les balises =


0 commentaires

6
votes

Utilisation d'EXUBERANT CTAGS, j'utilise quelque chose comme celui-ci dans le répertoire de base de mon projet (à l'exclusion du répertoire "Log"):

ctags -R --exclude=log *


0 commentaires

2
votes

Regardez cet article: Vim-EasyTags . Je n'ai pas essayé cela, mais ça a l'air assez bien. La création manuelle et la mise à jour des balises étaient vraiment gênantes. J'espère que cela aidera. :)


0 commentaires

15
votes

Comme personne n'a donné une fonction critique dans ces réponses, je vais fournir une réponse plus légèrement supérieure.

Le moyen le plus simple d'utiliser des CTAG avec VIM est en appelant: p>

 " ctags optimization
 set autochdir
 set tags=tags;


3 commentaires

Cela ne fait pas des étiquettes pour les sous-répertoires sous elle.


Hey Zen, CTAGS -R * recoque via l'arborescence de répertoire sous pwd et place toutes les balises dans un seul fichier, ./ balises . Vous n'avez besoin que d'un fichier de balises pour votre référentiel complet.


Je n'avais que des problèmes avec autochdir donc j'ai ce paramètre: autocmd bubead, bufenter * silencieux! LCD%: p: h: gs / / \\ / . Cela "manque" lorsque vous utilisez -TAB-Remote * Arguments à Vim mais c'est suffisamment bon pour 99% de mes besoins. (Je dois juste avoir : e les fichiers manuellement lorsque cela ne déclenche pas.)