ropemacs USAGE Tutorial

78

Es gibt viele Websites mit Anweisungen zur Installation von Ropemacs, aber bisher konnte ich keine mit Anweisungen zur Verwendung finden , nachdem sie bereits installiert wurden. Ich habe es installiert, oder zumindest scheint es so, Emacs hat "Rope" -Menü in seiner oberen Menüleiste. Was jetzt? Bisher konnte ich nur "Dokumentation anzeigen" verwenden (standardmäßig Cc d). Bei dem Versuch, die Code-Unterstützung zu verwenden (die vermutlich automatisch vervollständigt wird?), Fragt Emacs nur nach dem "Rope-Projekt-Stammordner" (was ist das?) Im Minibuffer und zeigt dann nichts an.

Was sind die Schritte, um Ropemacs nach der Installation auf einigen einfachen Python-Skripten in Aktion zu sehen? So etwas wie „wenn Sie dieses Skript in Ihrem Emacs und Platz um die blinkende setzen hier und drücken Sie diese , ist es , dass “ wäre eine Antwort sein.

(Ich habe überlegt, ob ich das fragen soll oder nicht, weil sonst niemand das gleiche Problem zu haben scheint)

Kopfkrabbe
quelle

Antworten:

63

Nun, Sie müssen zuerst Ihren Projektstammordner auswählen. Ganz einfach, dies ist der Ordner auf der obersten Ebene Ihres Projekts oder der aktuelle Ordner, wenn Sie mit einer einzelnen Datei arbeiten. Sobald Sie den Stammordner ausgewählt haben, funktionieren andere Optionen, z. B. Code-Unterstützung, Anzeigen der Dokumentation, Springen zu anderen Symbolen usw.

Für volle Nutzen aus ropemacs, ich schlage vor autocomplete.el , es in ~ / .emacs.d setzen, und das Hinzufügen dieser dann zu Ihrem .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)

Dies setzt voraus, dass Sie die automatische Vervollständigung in ~ / .emacs.d / auto-complete-1.2 installieren. Nachdem Sie dies getan haben, werden Sie automatisch automatisch vervollständigt, nachdem Sie einige Zeichen eines Wortes oder Symbols eingegeben haben.

Sie können Ihre Datei ROOT / .ropeproject / config.py ändern, um dem Pfad für die Seilsuche weitere Verzeichnisse hinzuzufügen, um eine bessere automatische Vervollständigung zu erzielen.

BEARBEITEN: Zwei der wichtigsten Funktionen für mich sind das Nachschlagen der Dokumentation und das direkte Springen zu einer Funktionsdefinition. Dies hängt davon ab, ob Sie den Seilsuchpfad für Ihr Projekt wie oben erwähnt richtig eingestellt haben.

Dokumentation : Bewegen Sie den Mauszeiger über ein Symbol (Funktionsname, Klassenname usw.) und führen Sie folgende Schritte aus:

C-c d

Dies zeigt Ihnen die Dokumentzeichenfolge für das betreffende Symbol.

Zur Definition springen : Bewegen Sie den Mauszeiger über ein Symbol (Funktionsname, Klassenname usw.) und führen Sie folgende Schritte aus:

C-c g

Dadurch wird sofort die Datei geöffnet, in der sich das Symbol befindet, und zum Anfang der Definition gesprungen. Dies ist ideal für Zeiten, in denen die Dokumentation spärlich ist und Sie den tatsächlichen Code sehen möchten. Es ist auch sehr schön, um in Ihrem eigenen Code zu navigieren.

Vorkommen finden :

C-c f

Intelligente Suche in Ihrem gesamten Projekt nach dem Symbol am Cursor.

Code-Unterstützung :

M-/

Geben Sie einfach die ersten Zeichen einer Funktion, Klasse usw. ein. Daraufhin wird eine Liste möglicher Vervollständigungen angezeigt. Beachten Sie, dass es aufgrund der Natur von Python nicht immer eine vollständige Liste ist.

Refactorings : Unter Rope-> Refactor gibt es einige Optionen. Diese dienen dazu, Ihren Code besser zu organisieren. Die Verwendung sollte größtenteils selbsterklärend sein. Wählen Sie im Allgemeinen den Codebereich aus, den Sie umgestalten möchten, und wählen Sie dann den Befehl aus.

Bearbeiten : Als Antwort auf einen Kommentar unten erfahren Sie genau, wie Sie Ihrem Python-Pfad weitere Pfade hinzufügen, damit die automatische Vervollständigung auch nach diesen Symbolen sucht.

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

Das geht rein .ropeproject/config.py

Matthew Talbert
quelle
6
Dies hilft überhaupt nicht bei der Beantwortung der Frage. Wiederholen Sie , wie Sie verwenden ropemacs. Sie haben noch nicht einmal gesagt, wie der Stammordner ausgewählt wird.
Blokeley
5
Sie wissen bereits, wie Sie den Stammprojektordner auswählen. Emacs hat Sie bereits dazu aufgefordert ...
Matthew Talbert
2
Außerdem habe ich Ihnen die besten Ratschläge zur Verwendung von Ropemacs gegeben. Meiner Meinung nach ist der beste Weg, es zu verwenden, es zusammen mit Autocomplete zu verwenden. Wenn Sie das tun, müssen Sie nicht einmal viel darüber wissen, es ist nur im Hintergrund vorhanden, um die Fertigstellung für Sie zu begründen.
Matthew Talbert
2
Dort habe ich einige grundlegende Befehle hinzugefügt. Wirklich, das ist viel, viel besser als jeder Rat, den ich zur Verwendung gefunden habe, also hoffe ich, dass es hilft.
Matthew Talbert
1
Oh, ich habe es. Ich muss nur TAB im Minipuffer drücken, nachdem ich M- / gedrückt habe, oder einen Teil des gesuchten Symbols eingeben und dann TAB drücken. Bevor ich versuchte, M- / direkt nach der Eingabe von "Bild" zu verwenden, wurde "Vervollständigung für Bild:" und nichts anderes angezeigt, was, wie ich dachte, bedeutete, dass es keine finden konnte Fertigstellung.
Headcrab
10

Sie können den Stammordner mit festlegen rope-open-project. Sobald Sie das Root-Projekt festgelegt haben, wird ein .ropeprojectVerzeichnis erstellt.

Darin enthält eine config.py-Datei Hooks, in denen Sie (Python-) Code ausführen können, sobald das Projekt festgelegt ist. Die project_opened(project):Funktion ist ein guter Ort, um Code auszuführen. Normalerweise aktiviere ich die virtuelle Umgebung imp.load_source('/path-to-env/activate_this.py'), damit ich Quellabdeckung für andere Bibliotheken in der virtuellen Umgebung erhalten kann.

Arthur Debert
quelle
Weitere Informationen zum Einrichten von Virutalenvs.
Sense
3

Informationen zur allgemeinen Verwendung der Seilbibliothek, von der Ropemacs abhängt, finden Sie unter:

Seilübersicht

Es wird detailliert beschrieben, was jede der Refactorings bewirkt, beispielsweise die Extraktionsmethode . Beachten Sie, dass dieses Dokument laut Autor etwas veraltet ist. Es sollte jedoch genügend Einführung in die Funktionen von Seilen bieten, um loszulegen.

Um die Ropemacs-Befehle in Emacs auszuführen, können Sie einen oder mehrere der folgenden Schritte ausführen:

  1. Verwenden Sie den Abschnitt 'Keybinding' im Link README docs aus Freyleys Antwort als Leitfaden, um die Zuordnungen zu lernen.
  2. Wenn Sie sich nicht an die Tastenkombinationen erinnern können, führen Sie M-x rope-<specific command name>den entsprechenden Refactoring-Namen aus und geben Sie ihn ein. Zum Beispiel wäre die Extraktionsmethode M-x rope-extract-method.
  3. Wählen Sie in Emacs <menu-bar> -> Rope. Zum Beispiel für die Extraktionsmethode wählen Sie dann <menu-bar> -> Rope -> Refactorings -> Extract Method. Es zeigt Ihnen auch die dazugehörigen Tastaturbelegungen (zB C-c r m)
Strahl
quelle