web-dev-qa-db-ja.com

ropemacs USAGEチュートリアル

installingropemacsに関する指示があるサイトはたくさんありますが、これまでのところ、インストール後にuseを使用する方法に関する指示を見つけることができませんでした。私はそれをインストールしました、または少なくともそうであるように、Emacsはトップメニューバーに「ロープ」メニューを持っています。それで?これまでのところ、「Show documentation」(デフォルトではC-c d)のみを使用できました。コードアシスト(これはオートコンプリートなのでしょうか?)を使用しようとすると、Emacsはミニバッファーで「Ropeプロジェクトのルートフォルダー」(それは何ですか?)について尋ね、何も表示しません。

ですから、ropemacsをインストールしたら、いくつかの単純なpythonスクリプトで実際に動作を確認する手順は何ですか?このスクリプトがemacsにあり、点滅する正方形hereを押してthisを押すと、thatが返されます。

(他の誰も同じ問題を抱えているように思われないので、私はしばらくこれを尋ねるべきかどうか考えていました)

78
Headcrab

まず、プロジェクトのルートフォルダーを選択する必要があります。簡単に言うと、これはプロジェクトの最上位のフォルダー、または単一のファイルを処理している場合は現在のフォルダーです。ルートフォルダーを選択すると、コードアシスト、ドキュメントの表示、他のシンボルへのジャンプなど、他のオプションが機能します。

Ropemacsを最大限に活用するには、 autocomplete.el を取得し、〜/ .emacs.dに入れてから、これを.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)

これは、オートコンプリートを〜/ .emacs.d/auto-complete-1.2にインストールすることを前提としています。これを行った後、Wordまたは記号のいくつかの文字を入力すると、オートコンプリートが自動的に取得されます。

より良いオートコンプリートを提供するために、ROOT/.ropeproject/config.pyファイルを変更して、ロープルックアップパスにディレクトリを追加することができます。

編集:私にとって最も重要な関数の2つは、ドキュメントを検索し、関数定義に直接ジャンプすることです。これは、上記のようにプロジェクトのロープ検索パスを正しく設定することに依存しています。

ドキュメント:シンボル(関数名、クラス名など)の上にカーソルを置いて、次の操作を行います。

C-c d

これにより、問題のシンボルのdocstringが表示されます。

定義へのジャンプ:シンボル(関数名、クラス名など)の上にカーソルを置き、次の操作を行います。

C-c g

これにより、シンボルが存在するファイルがすぐに開き、定義の先頭にジャンプします。これは、ドキュメントがまばらで、実際のコードを見たいときに役立ちます。また、独自のコード内をナビゲートするのは本当に素晴らしいことです。

オカレンスの検索

C-c f

カーソル位置のシンボルをプロジェクト全体でスマート検索します。

コードアシスト

M-/

関数、クラスなどの最初の文字を入力するだけで、可能な補完のリストが表示されます。 pythonの性質上、必ずしも完全なリストではないことに注意してください。

リファクタリング:Rope-> Refactorの下には非常に多くのオプションがあります。これらはコードをよりよく整理するためのものです。それらの使用方法は、ほとんど自明のはずです。通常、リファクタリングするコードの領域を選択してから、コマンドを選択します。

Edit:以下のコメントへの応答として、オートコンプリートがそうなるようにpythonパスに他のパスを追加する方法を正確に示しますそれらのシンボルも探してください。

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

これは.ropeproject/config.py

63
Matthew Talbert

私が見つけた最適な使用情報は、ropemacsソースのreadmeです。

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

13
freyley

ルートフォルダーは_rope-open-project_で設定できます。ルートプロジェクトを設定すると、_.ropeproject_ dirが作成されます。

その中のconfig.pyファイルには、プロジェクトが設定されると(python)コードを実行できるフックがあります。 project_opened(project):関数は、コードを実行するのに適した場所です。通常、仮想環境imp.load_source('/path-to-env/activate_this.py')をアクティブにして、仮想環境内の他のライブラリのソースカバレッジを取得できるようにします。

10
Arthur Debert

Ropemacsが依存するロープライブラリの一般的な使用方法については、以下を確認してください。

ロープの概要

extract method など、各リファクタリングが何を行うかについて詳細に説明します。著者によると、このドキュメントは少し時代遅れであることに注意してください。ただし、ロープの機能を開始するのに十分なイントロを提供する必要があります。

Emacsでropemacsコマンドを実行するには、次の1つ以上を試してください。

  1. README docs link from freyley's answer の「Keybinding」セクションを、マッピングを学習するためのガイドとして使用してください。
  2. キーバインドを思い出せない場合は、M-x rope-<specific command name>および関連するリファクタリング名を入力します。たとえば、抽出メソッドはM-x rope-extract-method
  3. Emacsで選択<menu-bar> -> Rope。たとえば、抽出メソッドの場合は、<menu-bar> -> Rope -> Refactorings -> Extract Method。また、関連するキーバインドも表示されます(例:C-c r m
3
Ray Vega