Hatena::ブログ(Diary)

えこ日記

2009-10-17

Eclipse で PyDev を使う

| 02:11

eclipse 上で Python のソースコードを書くには、PyDev が便利です。PyDev にはコード補完、シンタックスハイライト、定義へのジャンプ、リファクタリング機能、デバッグ機能等々、便利な機能が豊富に用意されています。

今回は Mac OS X(Snow Leopard)へ eclipse(Galileo / build-id:20090920-1017)をインストールした環境を前提にしています。ただし、eclipse は日本語化しておらず、英語表示のまま利用しています。

PyDev のインストール

PyDev も eclipse の一般的なプラグインとして提供されている為、インストールは簡単です。eclipse から PyDev のアップデートサイトhttp://pydev.org/updates)を指定して、プラグインをインストールするだけです。ただし、今回はインストールパッケージを指定する際に Mylyn のチェックは外しました(Mylyn についてはタスクとコードをつなげるMylyn | Think IT(シンクイット)に詳しく記載されていました)。

f:id:eco31:20091018000322p:image

PyDev のインストール完了後は eclipse に促されるまま、eclipse を再起動しておきます。次に、PyDev を利用する為に Python のパスを指定します。メニューから「Eclipse → 環境設定 → PyDev → Interpreter - Python」を選択します。すると、「Python Interpreters」というウインドウが表示されますので、右側の「New」をクリックし、Python のパスを指定します。例えば「バージョン違いの Python をインストールしてある」といったように、複数の Python をインストールしていない限りは、ターミナルで「which python」して表示されたパスを指定しておけば良いと思われます。今回は「/usr/bin/python」を指定しました。

f:id:eco31:20091018001244p:image

これで PyDev を利用する準備が整いました。

emacsplus のインストール

eclipse をデフォルトインストールした状態では eclipse のショーットカットキーと Mac OS X のショートカットキーが重複しており、非常に不便です。標準の eclipse でもキーバインドを emacs 風に出来るのですが、より emacs キーバインドに近づけるべく、emacsplus をインストールします。PyDev 同様、emacsplus も標準的な eclipse プラグインとして提供されている為、eclipse から emacsplus のアップデートサイトhttp://www.mulgasoft.com/emacsplus/update-site)を指定して、プラグインをインストールするだけです。

emacsplus のインストールが完了後は eclipse に促されるまま、eclipse を再起動しておきます。次に、emacsplus を有効化する(キーバインドを emacs 風に変更する)為に「Eclipse → 環境設定」を、続けて「General → Keys」を選択します。Keys ウインドウが表示されますので、Scheme 欄から「Emacs+ Scheme」を選択します。これで eclipse のキーバインドが概ね emacs 風になりました。

f:id:eco31:20091018002958p:image

コード補完のショートカットキーを変更

しかし、このままでは「Max OS X の Spotlight」と「emacs の Mark set」と「eclipse のコード補完(Content Assist)」が、ともに「Ctrl + Space」で重複しており、Mac OS X の Spotlight が優先され、コード補完の機能が使えません。

「システム環境設定 → Spotlight」から「Spotlight メニューのキーボードショートカット」を変更するか、もしくはチェックを外して無効化します。今回は無効化しましたが、適当なショートカットキーを割り当てておいた方が便利だと思います。

f:id:eco31:20091018002959p:image

これで eclipse 上で「Ctrl + Space」しても Spotlight は起動しなくなり、emacs の Mark set が使えるようになったのですが、依然としてコード補完が利用出来ません。今回はコード補完のショートカットキーを「Ctrl + .(ピリオド)」に変更し、機能を利用出来るようにします。

eclipse のメニューから「Eclipse → 環境設定」「General → Keys」を選択した後、上部のテキストボックス(Scheme の直下)に「Content Assist」と入力して、表示された結果の中から「Content Assist」を選択、更に「^_」(Ctrl + Space の意)になっている Binding 欄を選択してコントロールキーを押しながらピリオドを押すと、自動的に「^.」(Ctrl + . の意)が入力されますので、右下の OK をクリックします。

f:id:eco31:20091018003000p:image

これでコードを書く際に「Ctrl + .」を押すことによりコード補完を実行出来るようになりました。コード補完で表示される候補を上下に移動する際にも、「Ctrl + P」や「Ctrl + N」といった emacs のショートカットキーを利用することが出来ます。

f:id:eco31:20091018020516p:image

バックスペースのショートカットキーを設定

emacsplus をインストールしても、Previous Delete(emacs の Ctrl + H / バックスペースと同じ機能)のショートカットキーは未設定になっており、利用出来ません。まず、以下のショートカットキーを全てを削除します(つまり、Ctrl + H で始まる全てのショートカットを削除しています)。

  • Apropos Command (Ctrl-H A)
  • Describe Bindings (Ctrl-H B)
  • Describe Key Briefly (Ctrl-H C)
  • Describe Command (Ctrl-H D, Ctrl-H-F)
  • Describe Key (Ctrl-H K)
  • Where Is Command (Ctrl-H W)
  • Open Search Dialog (Ctrl-H)
  • Open Search Dialog (Ctrl-H S)

次に「Delete Previous」はキーの割当てを行います。デフォルトではショートカットキーが未割当てなので「Ctrl + H」を割り当てます。とりあえず、これで「emacs の Ctrl + H」が有効になりましたが、もっと上手い方法があるように思えてなりません、、、