最近ローカルの開発環境をEmacsからSublime Text 2に乗り換えたので,長い間.emacsに溜め込んだ環境をSublime Text 2でも再現するために,ちまちまと移行作業をしている.Sublime Text 2の強みというのはPythonで拡張パッケージが書ける上にパッケージ管理が非常に簡単というところにあると思っていて,とりあえずデフォルトの環境をなんとかしたいと思えばパッケージを探せば何とかなる.

ということで,今回はEmacsで構築していたClojureの開発環境を,SublimeREPLパッケージを使ってSublime Text 2で再現してみる.Emacsではswank-clojureとslime-replで書いたコードを逐次実行できる環境を作っていたが,今回もSublime Text 2内でClojureを動かして,エディタ内でコードの編集と実行を両立できるようにする.なお,今回の環境構築ではClojureやLeiningenのインストールはひと通り終えているものとする.

ちなみに,私の過去のEmacs&Clojure環境は以下のblogにまとめてある.

1. Package Controlをインストールする

これについては他のサイトでもよく解説されていることなので,簡単に紹介とインストール方法だけ.Sublime Text 2ではSublime Package Controlというパッケージ管理が定番となっていて,Sublime Text 2内のコマンドから検索・インストール・最新バージョンへの更新などを簡単に行うことができる.

まず,Sublime Text 2のコンソールに以下のコマンドを入力(コピペ)する.

1
import urllib2,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp) if not os.path.exists(ipp) else None;open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read())

インストールが終了したら,Sublime Text 2を再起動する.メニューバーの”Tools”からCommand Paletteを開いて「package」と入力して,以下のようにPackage Controlのコマンドが表示されればOK.これでパッケージのインストールが簡単に行えるようになる.


2. SublimeREPLをインストールする

次に,Clojureをエディタ内で動かすためにSublimeREPLというパッケージをインストールする.ちなみにこのパッケージはClojure専用というわけではないので,RubyやPython,Rなどの他の言語のREPLの機能も兼ね備えている.

まず,先ほどの確認のときのようにCommand Paletteを開いて「install」と入力し,「Package Control: Install Package」を選択する.

すると,登録されているパッケージ一覧が表示されるので,「SublimeREPL」と入力してパッケージを選択してインストールを行う.

これで,SublimeREPLパッケージのインストールは完了.メニューバーのToolsにSublimeREPLという項目が表示されればOK.


3. SublimeREPLの環境設定にLeiningenのPATHを追記する

最後に,SublimeREPLの環境設定を行う.具体的にはLeiningenがインストールされているディレクトリにPATHを通すのだが,これをしないと「OSError(2, ‘No such file or directory’)」といったエラーが表示されるので注意.

今回の場合は,パッケージ内の設定ファイルに直接追記することにする.まず,SublimeREPLのパッケージのディレクトリ内にあるClojureのMain.sublime-menuというファイルを開く.これには,Sublime Text 2の”Preference”→”Browse Packages…”でFinderを表示してディレクトリを辿っても良いが,今回はTerminal.appで以下のコマンドを入力する.

1
$ open $HOME/Library/Application\ Support/Sublime\ Text\ 2/Packages/SublimeREPL/config/Clojure/

そして,Finderで表示された中にあるMain.sublime-menuをエディタで読み込み,29行目のextend_envの行にLeiningenがあるディレクトリのPATHを入力する.今回はMacPortsで入れたLeiningenを使用するために,/opt/local/binを指定する.

1
"extend_env": {"INSIDE_EMACS": "1" }

と書かれている行の末尾に「”PATH”: “{PATH}:/opt/local/bin/”」を追記する.

1
"extend_env": {"INSIDE_EMACS": "1", "PATH": "{PATH}:/opt/local/bin/"}

4. SublimeREPLの起動

メニューバーの”Tools”から”SublimeREPL”→”Clojure”→”Clojure”を選択して,以下のようにREPLが起動すれば,無事にSublimeREPLの環境設定は終了.

環境

  • OS
    • Mac OS X 10.8.2
  • Sublime Text 2
    • Version 2.0.1, Build 2217
  • Leiningen
    • Leiningen 1.6.1.1

参考