Chaque fois que vous avez chargé un cscope.out dans Vim, je dois modifier "PWD" de Vim vers le même répertoire que le fichier CSCOPE.out est sous, qui pourrait être due à ce chemin relatif CSCOPE Utilisez lors de la génération de fichiers d'étiquette. Donc, s'il existe un moyen de forcer CSCOPE à utiliser le chemin absolu dans son fichier de balise - CSCOPE.OUT, il sera donc que si la PWD de votre session VIM est identique à celle du fichier CScope.out sous. < / p>
6 Réponses :
Lors de l'importation de cscope.out, vous pouvez fournir le préfixe, c'est-à-dire
Cscope Tag: foobar
# line filename / context / line
1 21 /path/to/src/code/foobar_file.c
@aaron H. a raison.
Pour ma configuration, j'ai utilisé le plugin cscope_maps.viM et modifié les lignes suivantes: p> où "/ usr / projet "Est l'emplacement du fichier cscope.out et le chemin absolu que je veux utiliser. p> p>
the Tutoriel CSCOPE a une solution de contournement très simple pour ce problème:
11.En définir le paramètre
$ cscope_db code> Variable d'environnement Pour pointer vers une base de données CSCOPE que vous créez, vous n'avez donc pas toujours besoin de lancer Vim dans le même répertoire que la base de données. Ceci est particulièrement utile pour projets où le code est divisé en plusieurs sous-répertoires. Remarque: pour Pour travailler, vous devez construire la base de données avec des chemins de chemin absolus: CD à /, et faire p>cd /foo cscope -b CSCOPE_DB=/foo/cscope.out; export CSCOPE_DB
Vous pouvez créer votre cscope.files à l'aide de chemins absolus vers vos fichiers, voici mes scripts pour générer mes bases de données CSCOPE alors juste vim cscope.files et peut-être: CS Ajouter cscope. Out, bien que mon plugin CScope le fasse automatiquement. Ensuite, je recherche les fichiers que je suis intéressé et sautez-leur avec gf. P> p>
En outre, exécutez export cscope_db = $ (pwd) /cscope.out code> sur le même dir que le script fonctionne
Vous pouvez demander à Vim d'interpréter les chemins dans cscope.out si «cscoperelative» est défini, puis en l'absence d'un préfixe donné à
cscope (le préfixe est l'argument de -p option de cscope), basename de
cscope.out emplacement (généralement le répertoire racine du projet) sera utilisé
comme le préfixe pour construire un chemin absolu. La valeur par défaut est éteinte.
Remarque: cette option n'est efficace que lorsque cscope (CSCOPEPRG) est
initialisé sans piste de préfixe (-P). p>
Exemples P>
: SET CSRE cscoperelative code>.
De : Aide CSRE CODE>: P>
: Set Nocsre P>
blockQuote>
Cela devrait vraiment être la réponse acceptée à partir d'un point de vue Vim + CScope est de loin la solution la plus facile. Merci pour votre réponse!
Note: Depuis que je ne suis pas assez senior pour ajouter des commentaires: Les réponses d'Aaron et de Neha m'ont été utiles pour en savoir plus sur l'ensemble du système, mais la meilleure et la meilleure réponse directe à la question est actuellement à la 3ème place et est Shayan.
L'astucieux demandait plus de demander des noms de chemin absolus par cscope, ne pas travailler autour de celui-ci en utilisant (le vim capable et puissant). p>
Note2: Il y a une autre façon de changer un seul changement de Vim et accomplir la même chose que ce que NEHA a fait. P>
:set cscopeprg=cscope -P path_to_relative_base