web-dev-qa-db-fra.com

ropemacs USAGE tutorial

Il existe de nombreux sites avec des instructions sur installation ropemacs, mais jusqu'à présent, je n'ai trouvé aucun avec des instructions sur la façon de tiliser après qu'il est déjà installé. Je l'ai installé, ou du moins il semble que Emacs ait le menu "Corde" dans sa barre de menu supérieure. Maintenant quoi? Jusqu'à présent, je ne pouvais utiliser que "Afficher la documentation" (C-c d par défaut). Une tentative d'utilisation de l'aide au code (qui est auto-complétée, je suppose?) Ne fait qu'emacs demander à propos du "dossier racine du projet Rope" (qu'est-ce que c'est?) Dans le mini-tampon et n'afficher ensuite rien.

Donc, une fois ropemacs installé, quelles sont les étapes pour le voir en action sur des scripts simples python? Quelque chose comme "si vous avez ce script dans votre emacs et mettez le carré clignotant ici et appuyez sur ceci, c'est le cas que "serait une réponse.

(Je me demande si je devrais poser cette question ou non depuis un certain temps, car personne d'autre ne semble avoir le même problème)

78
Headcrab

Eh bien, vous devez d'abord sélectionner le dossier racine de votre projet. C'est tout simplement le dossier au niveau supérieur de votre projet, ou le dossier courant si vous avez affaire à un seul fichier. Une fois que vous avez sélectionné le dossier racine, d'autres options fonctionneront, telles que l'aide au code, l'affichage de la documentation, le passage à d'autres symboles, etc.

Pour profiter pleinement de ropemacs, je suggère d'obtenir autocomplete.el , de le mettre dans ~/.emacs.d, puis de l'ajouter à votre .emacs

(add-to-list 'load-path "~/.emacs.d/")
(add-to-list 'load-path "~/.emacs.d/auto-complete-1.2")
(autoload 'python-mode "python-mode" "Python Mode." t)
(add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))
(add-to-list 'interpreter-mode-alist '("python" . python-mode))
(require 'python-mode)
(autoload 'pymacs-apply "pymacs")
(autoload 'pymacs-call "pymacs")
(autoload 'pymacs-eval "pymacs" nil t)
(autoload 'pymacs-exec "pymacs" nil t)
(autoload 'pymacs-load "pymacs" nil t)
(pymacs-load "ropemacs" "rope-")
(setq ropemacs-enable-autoimport t)

(require 'auto-complete)
(global-auto-complete-mode t)

Cela suppose que vous installez la saisie semi-automatique dans ~/.emacs.d/auto-complete-1.2. Après cela, vous obtiendrez la saisie semi-automatique automatiquement après avoir tapé quelques caractères d'un mot ou d'un symbole.

Vous pouvez modifier votre fichier ROOT/.ropeproject/config.py pour ajouter plus de répertoires au chemin de recherche de corde, afin de fournir une meilleure saisie semi-automatique.

EDIT: Deux des fonctions les plus importantes pour moi sont la recherche de documentation et le passage direct à une définition de fonction. Cela dépend de la définition du chemin de recherche de corde correctement pour votre projet, comme mentionné ci-dessus.

Documentation : placez le curseur sur un symbole (nom de fonction, nom de classe, etc.), et faites:

C-c d

Cela vous montrera la docstring pour le symbole en question.

Saut à la définition : placez le curseur sur un symbole (nom de fonction, nom de classe, etc.), et faites:

C-c g

Cela ouvrira immédiatement le fichier où réside le symbole et sautera au début de la définition. C'est idéal lorsque la documentation est rare et que vous souhaitez voir le code réel. De plus, c'est vraiment bien pour naviguer dans votre propre code.

Rechercher des occurrences :

C-c f

Recherche intelligente dans tout votre projet pour le symbole sur le curseur.

Aide au code :

M-/

Tapez simplement les premiers caractères d'une fonction, d'une classe, etc., et cela affichera une liste des complétions possibles. Notez qu'en raison de la nature de python, ce ne sera pas toujours une liste complète.

Refactorings : Il y a pas mal d'options sous Corde-> Refactor. Ce sont pour mieux organiser votre code. La façon de les utiliser devrait être principalement explicite; en général, sélectionnez la région de code que vous souhaitez refactoriser, puis choisissez la commande.

Modifier : En réponse à un commentaire ci-dessous, voici exactement comment ajouter d'autres chemins à votre chemin python pour que la saisie semi-automatique se fasse recherchez également ces symboles.

prefs.add('python_path', '~/path/to/virtualenv/lib/python2.6/site-packages')

Cela va dans .ropeproject/config.py

63
Matthew Talbert

La meilleure information d'utilisation que j'ai trouvée est un readme dans la source ropemacs, ici:

https://github.com/python-rope/ropemacs

13
freyley

Vous pouvez définir le dossier racine avec rope-open-project. Une fois que vous avez défini le projet racine, un répertoire .ropeproject Sera créé.

À l'intérieur, un fichier config.py contient des crochets où vous pouvez exécuter du code (python) une fois le projet défini. La fonction project_opened(project): est un bon endroit pour exécuter du code. J'active généralement l'environnement virtuel imp.load_source('/path-to-env/activate_this.py'), afin de pouvoir obtenir la couverture source pour d'autres bibliothèques dans l'environnement virtuel.

10
Arthur Debert

Pour une utilisation générale de la bibliothèque de cordes dont dépend ropemacs, consultez:

Présentation de la corde

Il décrit en détail ce que fait chacun des refactorings tels que méthode d'extraction . A noter que selon l'auteur ce doc est un peu dépassé. Cependant, il devrait fournir suffisamment d'introduction aux fonctionnalités des cordes pour commencer.

Pour exécuter les commandes ropemacs dans Emacs, vous pouvez essayer une ou plusieurs des solutions suivantes:

  1. Utilisez la section 'Keybinding' dans le lien README docs de réponse de freyley comme guide pour apprendre les mappages.
  2. Si vous ne vous souvenez pas des raccourcis clavier, exécutez M-x rope-<specific command name> et indiquez le nom de refactoring associé. Par exemple, la méthode d'extraction serait M-x rope-extract-method.
  3. Sélectionnez dans Emacs <menu-bar> -> Rope. Par exemple, pour la méthode d'extraction, sélectionnez <menu-bar> -> Rope -> Refactorings -> Extract Method. Il vous montrera également les raccourcis clavier associés (par exemple C-c r m)
3
Ray Vega