2009年1月3日土曜日

geditからPythonを直接実行できるようにする

この2日くらい、ちょこちょこPythonをいじって遊んでいます。
で、開発環境としてEclipseも考えていたんだけど、もうすこし軽快なエディタでさくさくやりたいなあ、ということでいくつか物色。

結局、gnomeに標準で付いてくるgeditにしたんだけど、他にもIDLEとかEmacsとか色々あるのですねえ。
この際、Emacsを覚えてハッカー気取りになりたいなあと思いつつも、きっとEmacsを使えるようになる前に飽きるなあと思ったりしていました。いやあハッカーにはなれないですなあ。

で、geditにはPythonコンソールというプラグインが付いていて、エディタでコーディングしながら下のペインでインタラクティブシェルが使えるんです。これはこれで便利です。

が、所詮インタラクティブシェルなので、ほんの数行書いて試してみるくらいならいいのですが、書き上げたプログラムのテスト実行するのには面倒なので、ちょっと拡張してみることにしました。


まず、「編集」メニューの「設定」から「プラグイン」タブを開き、「外部ツール」にチェックを入れ、外部ツールプラグインを有効に。

このプラグインは、geditのメニューから任意の外部コマンド、シェルスクリプトを実行出来るようにするものみたい。ショートカットも割り当てられるのでかなり便利。

今回は、他のIDEと似た動きをさせたいので「F9」キーの押下で実行出来るようにしたい。

あらかじめ組み込まれている「コマンドの実行」で近いことは出きるが、これだと毎回実行コマンドを手入力しないといけないので少しめんどう。

なので、この「コマンドの実行」に記述されているシェルスクリプトを参考に、以下のような新規コマンドを作成。
#!/bin/sh
exec `zenity --entry --title="Run command - gedit" --text="Command to run" --entry-text="python "$GEDIT_CURRENT_DOCUMENT_NAME`

その他、入力を「編集中のドキュメント」に設定。(下図参照)

ヘルプによるとGEDIT_CURRENT_DOCUMENT_NAMEという変数は現在編集中のファイル名が入るみたいです。
これでF9を押すと。。。


こんな感じになります。これでOKを押せばPythonスクリプトをgeditから実行出来ます。
引数が必要なスクリプトであれば、この画面で.pyの後にスペース区切りで渡してやればいいと思いますよ。

ダイアログをはさむのが面倒であれば、もちろん下記のように書くだけでいいと思います。
#!/bin/sh
python $GEDIT_CURRENT_DOCUMENT_NAME
ってな感じで遊んでいます。仕事に関係のないプログラミングは楽しいですね。(今回はプログラミングしてませんが。。)
今のところの目標はpygameを使って簡単なゲームを作ることにしています。。
とりあえず、リバーシを作るかな。ベタに。。

ちなみに特に触れませんでしたが、今回このカスタマイズをするなかでzenityというgnomeのツールの存在を知りました。(上記のコマンドのなかにもサラッと出てきていますね)
コマンドラインから簡易なダイアログを生成することが出きるので、ちょっとしたスクリプトもまるでGUIツールのようにリッチなふりが出来ますね。
これかなり便利。

0 件のコメント:

コメントを投稿