Posted by & filed under 開発.


前回はQuicklispによるライブラリ管理について説明しました。今回はSLIMEの
基本的な使い方について説明します。

SLIMEとは

SLIMEは(Common) Lispのための統合開発環境(IDE)です。他のIDEとは異なり、
対話的にプログラムを構築できるのが特徴です。一度ハマれば他の開発環境は
使えなくなるでしょう。詳しい情報は次のURLを参照してください。

http://common-lisp.net/project/slime/

インストールと設定

SLIME

SLIMEのCVSスナップショット(本家推奨)をインストールします。OSは
GNU/LinuxやMac OS XなどのUNIX系OSを想定しています。

展開したディレクトリはslime-2011-04-07のような名前になりますが、ここ
ではslimeという名前で~/.emacs.d/直下に移動します。

次にEmacsの設定を行います。次のコードを~/.emacsに書いてください。

これで基本的な設定は完了です。

popwin.el

使い始めれば気付くと思いますが、SLIMEは事あるごとにEmacsのウィンドウを
分割したり、他のウィンドウのバッファを切り替えたりします。これではせっ
かくの優れた開発環境も台無しです。そこで、拙作のpopwin.elをインストール
することをお勧めします。popwin.elはウィンドウの分割等を極力抑制し、プロ
グラマが快適に作業することを助けてくれる優れものです。

インストール方法や使い方は次のURLを参照してください。

http://d.hatena.ne.jp/m2ym/20110120/1295524932

インストールが完了したら次のコードを~/.emacsに書いてください。

ac-slime

ac-slimeはauto-complete.elのSLIME拡張です。SLIME(SWANKサーバー)の情報を
利用するため、非常に高精度のコード補完が行えます。

ac-slimeは次のURLから入手できます。

https://github.com/purcell/ac-slime

なおauto-complete.elをあらかじめインストールしておく必要があります。イ
ンストールしていない方は次のURLを参照してください。

http://cx4a.org/software/auto-complete/index.ja.html

ac-slimeをインストールするには、先のURLからac-slime.elをダウンロードし、
load-pathの通ったディレクトリにコピーします。install-elispや
auto-installがある場合は次のコードを評価することでインストールできます。

最後に~/.emacsに次のコードを書いてインストール完了です。

これで.lispファイルやREPLでauto-complete.elを使った自動コード補完が行え
るようになりました。

SLIMEの使い方

SLIMEの起動

インストールと設定が完了したらM-x slimeとやってみましょう。次のような
表示の*slime-repl ccl*というREPLバッファが表示されれば成功です。

SLIMEを使って開発するに際して、まずやることはこのM-x slimeです。これ
を行わなければ、後で説明するエディタコマンドやインデント、コード補完、
その他諸々が全く機能しません。まずM-x slime、これだけ覚えておいてくだ
さい。

なお表示されたREPLバッファはちょっとした確認などを行ったりする場合を除
いて基本的には使用しません。

SLIMEの操作

SLIMEを起動して次にすることはlispファイルを開くことです。試しに
foo.lispなどの適当なファイルを開いてください。

lispファイルのメジャーモードはlisp-modeです。このモードには様々なキー
が割り当てられていますが、今回はその中でも覚えておくべきキーバインドを
紹介します。

C-c C-c

C-c C-cは現在ポイントしているトップレベルフォームをコンパイルします。
例えば次のような関数を編集しているとします。

ここでC-c C-cすると関数fがコンパイルされます。実際にやってみれば分
かると思いますが、上の関数をコンパイルすると、SLIMEは変数aが未使用で
あると警告してくれます。もし警告があればそれを修正してC-c C-c、という
のが基本的な開発サイクルになります。

C-c C-k

C-c C-kは現在のファイルをコンパイルしてロードします。トップレベルフォー
ムを一つずつC-c C-cするのが面倒なときに重宝します。また、C-c C-c
様、ソースコードに問題があれば警告してくれるので、ファイルの最終的な確
認にも利用できます。

C-c C-z

C-c C-zは現在接続しているサーバーのREPLバッファを表示してくれます。何
か確認したいときや、前回紹介したQuicklispでライブラリをロードしたいとき
C-c C-zします。例えばCL-TEST-MOREというライブラリをロードし忘れてい
たとしたら、C-c C-zでREPLバッファを表示して、次のように入力します。

REPLは使いこなせば非常に強力なので是非活用してください。

困った時

より本格的な開発サイクルは次回で説明しますが、SLIMEにおけるEmacsの
C-g的な存在としてM-x slime-restart-inferior-lispを紹介しておきます。

これは現在接続しているサーバーを再起動してクリーンな状態に戻すコマンド
です。SLIMEで開発していると、変にシンボルがインターンされたり、おかしな
値の変数ができたりします。また、正しく動作しているとしても、実は古い変
数などが残っていて偶然動作しているだけだったりもします。そういった状態
をリセットするのにM-x slime-restart-inferior-lispは非常に便利です。是
非覚えておいてください。

まとめ

今回は「SLIMEの使い方 基礎編」ということで、SLIMEのインストールと設定、
および非常に基本的な使い方を紹介しました。実際のところ、今回の内容だけ
でSLIMEで開発を行うにはかなり情報が不足しています。Common Lisperなら気
付いていると思いますが、パッケージの扱いなど、様々な重要な点を端折って
います。次回以降、より実際的なSLIMEの使い方を紹介していきたいと思います。


関連文書:

Comments are closed.