10
votes

Comment laisser cscope utiliser le chemin absolu dans cscope.out dossier?

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>


0 commentaires

6 Réponses :


12
votes

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


0 commentaires

1
votes

@aaron H. a raison.

Pour ma configuration, j'ai utilisé le plugin cscope_maps.viM et modifié les lignes suivantes: xxx

où "/ usr / projet "Est l'emplacement du fichier cscope.out et le chemin absolu que je veux utiliser.


0 commentaires

4
votes

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   


0 commentaires

3
votes

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 xxx

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.


1 commentaires

En outre, exécutez export cscope_db = $ (pwd) /cscope.out sur le même dir que le script fonctionne



15
votes

Vous pouvez demander à Vim d'interpréter les chemins dans cscope.out relative à l'emplacement du fichier cscope.out en définissant l'option cscoperelative . De : Aide CSRE :

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).

Exemples

: SET CSRE
: Set Nocsre


1 commentaires

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!



1
votes

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


0 commentaires