Sublime text2のpython3開発環境整備

さて、たびたび話題に上っていたsublime text2の設定について書いておきます。
・各種Packageの導入
http://dbader.org/blog/setting-up-sublime-text-for-python-development
などを参考に各種パッケージを導入していきます。
私は以下のPackageを導入しました。

  • Package Control(パッケージマネージャー)
  • SideBarEnhancements(サイドバーの機能を強化してくれる)
  • All Autocomplete(補完機能の強化)
  • SublimeCodeIntel(補完機能の強化2)
  • SublimeREPL(sublime text内でインタプリタを使えるようにする)
  • Sublime PEP8 Lint(PEP8コーディング規約チェック)
  • SublimeRope(Python統合開発環境

続いて、Python3でプログラミングがしやすいように設定をいじっていきます。

1、Pythonコーディング中はインデント数をスペース4つにして、タブをスペースに置換する様に設定する

http://qiita.com/skinoshita/items/ef86f528fbeb5652fc05
上記のリンクにのっているように、「Syntax Specific -Users」を設定していきます。

2、command + Bでpython3を実行できるようにする

sublime text2のPreferences -> Browse PackagesでFinderでPackageを見れるようにします。続いて、Userフォルダー内にPython3-sublime-buidファイルを作成、編集します。(Pythonフォルダ内にあるPython-sublime-buildをコピーして編集するのが良いと思います。)

{
	"cmd": ["python3", "-u", "$file"],
	"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
	"selector": "source.python"
}

上記のように内容を編集して、Python3-sublime-buildを保存してください。また、最初の手順の結果同じフォルダ内に、Python-sublime-settingsが出来ているはずなので、これの名前をPython3-sublime-settingsに変更しておきます。
さらにUserフォルダ内にあるPreferences.sublime-settingsを編集し、PATHを通しておきます。

{
	"build-env":
	{
		"PATH": "/usr/local/bin:/usr/bin"
	},
	"ignored_packages":
	[
		"Vintage"
	]
}

python3をhomebrewで導入している場合は、上記のようにPATHを通しておくと、Python3-sublime-buildでFull PATHでpython3を呼ばなくても良くなります。

3、SublimeREPLでPython3およびipython3を実行できるようにする

SublimeREPLは、Sublime text2内のタブがターミナルとして使えるというplug-inです。GUIターミナルなので特定の場所にカーソルを置いたり、コピペするのが便利だったり、色がきれいだったりといい事がいっぱいです。さらにipythonが使えるようになるので、各種マジックコマンドも使えますし、matplotlibとの兼ね合いもokです。(command + Bで実行すると通常のシェルで実行したのと同じ状態になるので、matplotlibでplotすると、plotされたグラフを消すまで次の操作を受け付けなくなってしまいます。その点、ipythonなら対象のスクリプトを実行する前に、%matlibplotというマジックコマンドを実行しておく事でplotウィンドウが出ていても操作を受け付けるように出来ます。)加えて言えば、デバッグ用の事後解析モードを立ち上げる事も出来るので、デバックも容易になります。
それでは設定に移って行きます。
まず、Preferences -> Browse Packagesで、FinderでPackageを見れるようにします。そこでSublimeREPLフォルダを開いて、その中にあるconfig/Python/Main.sublime-menuをコピーします。
続いて、先ほどから自分の設定を置いているUserフォルダ内に、SublimeREPL/config/Python/というようにフォルダを作っていき、その最下層(つまりPythonフォルダ内)にMain.sublime-menuをペーストします。そしてその中身を編集します。以下のようになるように編集して下さい。

[
     {
        "id": "tools",
        "children":
        [{
            "caption": "SublimeREPL",
            "mnemonic": "r",
            "id": "SublimeREPL",
            "children":
            [
                {"caption": "Python",
                "id": "Python",

                 "children":[
                    {"command": "repl_open",
                     "caption": "Python 3",
                     "id": "repl_python3",
                     "mnemonic": "p",
                     "args": {
                        "type": "subprocess",
                        "encoding": "utf8",
                        "cmd": ["python3", "-i", "-u"],
                        "cwd": "$file_path",
                        "syntax": "Packages/Python/Python.tmLanguage",
                        "external_id": "python",
                        "extend_env": {"PYTHONIOENCODING": "utf-8"}
                        }
                    },
                    {"command": "repl_open",
                     "caption": "Python 3 - IPython",
                     "id": "repl_python_ipython3",
                     "mnemonic": "p",
                     "args": {
                        "type": "subprocess",
                        "encoding": "utf8",
                        "autocomplete_server": true,
                        "cmd": {
                            "osx": ["python3", "-u", "${packages}/SublimeREPL/config/Python/ipy_repl.py"]
                        },
                        "cwd": "$file_path",
                        "syntax": "Packages/Python/Python.tmLanguage",
                        "external_id": "python",
                        "extend_env": {
                            "PYTHONIOENCODING": "utf-8",
                            "SUBLIMEREPL_EDITOR": "$editor"
                        }
                    }
                    }
                ]}
            ]
        }]
    }
]

これで、問題なくpython3とIpython3をsublimeREPLで使えるようになります。tools->sublimeREPL->Pythonの部分にPython3とPython3 -ipython3の選択肢が出るようになりますので、それをクリックするとターミナルが立ち上がるようになるはずです。(ipython3の方は初回は立ち上がりに時間がかかる事がありますので、5〜10秒くらいは表示が出なくても問題ありません。)

以上で今回の環境構築は終了です。sublimeREPLは時たま不安定になりますが、便利なので出来るだけ使っていけるようにしようと思います。