Utiliser cscope pour parcourir le code Python avec VIM?
Quelqu'un a réussi avec succès à l'aide de cscope
avec du code Python? J'ai VIM 7.2 et la dernière version de cscope
installé, toutefois, il ne pas obtenir mon code de balises correctement (toujours par un couple de lignes). J'ai essayé le pycscope
script, mais sa sortie n'est pas pris en charge par la version moderne de cscope
.
Des idées? Ou une alternative pour la navigation du code Python avec VIM? (Je suis particulièrement intéressé par les fonctionnalités supplémentaires cscope
offre au-delà de la simple tags de ctags
)
source d'informationauteur Eli Bendersky
Vous devez vous connecter pour publier un commentaire.
EDIT: je vais courir à travers le processus étape par étape:
La préparation de la sources:
exubérant ctags, dispose d'une option: -x
C'est la clé du problème:
vous donnera votre base de données des objets de la source dans une connue, format, décrit dans le
Gnu Global n'est pas seulement limité à la "out of the box" type de fichiers. N'importe quel format de fichier va servir.
Aussi, vous pouvez utiliser gtags-cscope, qui est livré avec mondial comme mentionné dans la section 3.7 du manuel, pour un éventuel raccourci à l'aide de gtags. Vous vous retrouverez avec une entrée d'un ctags tabulaire fichier Global/gtags peut analyser pour obtenir vos objets, ou vous pouvez utiliser la source pour pycscope avec votre ctags fichier de format connu pour avoir une entrée pour le vim cscope commandes dans
if_cscope.txt.
De toute façon, il est tout à fait faisable.
Peut-être vous préférez idutils?
Definintely possible depuis
z3c.recette.tags
sur pypi rend l'utilisation de deux ctags et idutils pour créer des fichiers de balises pour un buildout, qui est une méthode que je doit enquêter dans peu de temps.
Bien sûr, vous pouvez toujours utiliser le greputils script ci-dessous, il a un support pour idutils , nous savons idutils fonctionne avec python, et si cela échoue, il y a aussi quelque chose appelé vimentry à partir de cette année, qui utilise également l'python, idutils et vim.
Liens de référence (pas de liste complète):
J'espère que cela vous aide à résoudre votre problème, je m'a bien aidé. J'aurais été très triste ce soir avec un maggoty pycscope.
Cela semble fonctionner pour moi:
Modifier le répertoire de votre code python. Créez un fichier appelé
cscope.files
:Vous devrez peut-être effectuer un
cscope -b
d'abord si les renvois ne pas se construit correctement.cscope
cet outil n'est pas conçu pour fonctionner avec Python, et il n'existe pas de plans de mise en œuvre de cette compatibilité. Tout fonctionne maintenant, fonctionne apparemment par erreur, et il n'y a pas de promettre qu'il va continuer à travailler.pycscope
. La dernière version 0.3 est pris en charge par lecscope
DB. L'auteur depycscope
m'a dit qu'il a compris le format de sortie pour lescscope
DB à partir de la lecture du code source decscope
. Ce format n'est pas documenté, sur le but, mais néanmoins il travaille actuellement avecpycsope
de 0,3, ce qui est la solution que je vais utiliser.Je vais accepter cette réponse puisque, malheureusement, pas d'autre réponse, même après bounty a été déclarée. Pas de réponses sont upvoted, donc honnêtement, je n'ai aucune idée de l'endroit où la prime sera aller.
Il est un merveilleux Python-mode-klen plugin. Si vous l'avez et la corde (python refactoring de la bibliothèque) installé, puis aller à la définition d'un terme particulier est aussi simple que
<C-c>g
ou<C-c>rag
(le premier est un type de fichier de mappage, la seconde est global). Il y a beaucoup d'autres fonctionnalités utiles, certains inutile pour moi. Tous sont disableable. Caractéristiques de la liste de questions qui se trouvent au cscope-intro:-
à la place de l'lignes (même si elles pointent vers l'emplacement correct). Peut-être que cela sera corrigé.Pas très bien, mais je ne suis pas trop expérimenté utilisateur de ropevim.
J'ai eu la même question que vous avez obtenu, après la navigation sur internet, j'ai trouvé un moyen de résoudre ce problème:
créer un script python:
cscope_scan.py
exécuter ce script sous vous code de la racine du dossier, cela va générer le
cscope.files
et puis excutecscope -b
je ne sais pas ce qui se passe de mon ordinateur, les deux dernières lignes ne fonctionnent pas bien, mais je pense que taper manuellement uncscope -bk
est acceptable:)