開発.Tweet前回はQuicklispによるライブラリ管理について説明しました。今回はSLIMEの基本的な使い方について説明します。Lispのための統合開発環境(IDE)です。対話的にプログラムを構築できるのが特徴です。一度ハマれば他の開発環境は使えなくなるでしょう。詳しい情報は次のURLを参照してください。http://common-lisp.net/project/slime/インストールと設定SLIMESLIMEのCVSスナップショット(本家推奨)をインストールします。XなどのUNIX系OSを想定しています。~/.emacs.d/slime展開したディレクトリはslime-2011-04-07のような名前になりますが、ここではslimeという名前で~/.emacs.d/直下に移動します。次にEmacsの設定を行います。次のコードを~/.emacsに書いてください。slime-banner))これで基本的な設定は完了です。popwin.el使い始めれば気付くと思いますが、SLIMEは事あるごとにEmacsのウィンドウを分割したり、他のウィンドウのバッファを切り替えたりします。これではせっかくの優れた開発環境も台無しです。そこで、拙作のpopwin.elをインストールすることをお勧めします。popwin.elはウィンドウの分割等を極力抑制し、プログラマが快適に作業することを助けてくれる優れものです。インストール方法や使い方は次のURLを参照してください。http://d.hatena.ne.jp/m2ym/20110120/1295524932インストールが完了したら次のコードを~/.emacsに書いてください。popwin:special-display-config)ac-slimeac-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.htmlac-slimeをインストールするには、先のURLからac-slime.elをダウンロードし、load-pathの通ったディレクトリにコピーします。install-elispやauto-installがある場合は次のコードを評価することでインストールできます。"https://github.com/purcell/ac-slime/raw/master/ac-slime.el")最後に~/.emacsに次のコードを書いてインストール完了です。'set-up-slime-ac)これで.lispファイルやREPLでauto-complete.elを使った自動コード補完が行えるようになりました。slimeとやってみましょう。ccl*というREPLバッファが表示されれば成功です。これを行わなければ、後で説明するエディタコマンドやインデント、コード補完、その他諸々が全く機能しません。slime、これだけ覚えておいてください。表示されたREPLバッファはちょっとした確認などを行ったりする場合を除いて基本的には使用しません。SLIMEの操作SLIMEを起動して次にすることはlispファイルを開くことです。試しにfoo.lispなどの適当なファイルを開いてください。lispファイルのメジャーモードはlisp-modeです。このモードには様々なキーが割り当てられていますが、今回はその中でも覚えておくべきキーバインドを紹介します。C-cは現在ポイントしているトップレベルフォームをコンパイルします。次のような関数を編集しているとします。C-cすると関数fがコンパイルされます。実際にやってみれば分かると思いますが、上の関数をコンパイルすると、SLIMEは変数aが未使用であると警告してくれます。C-c、というのが基本的な開発サイクルになります。C-kは現在のファイルをコンパイルしてロードします。C-cするのが面倒なときに重宝します。C-zは現在接続しているサーバーのREPLバッファを表示してくれます。C-zでREPLバッファを表示して、次のように入力します。:cl-test-more)REPLは使いこなせば非常に強力なので是非活用してください。slime-restart-inferior-lispを紹介しておきます。これは現在接続しているサーバーを再起動してクリーンな状態に戻すコマンドです。SLIMEで開発していると、変にシンボルがインターンされたり、おかしな値の変数ができたりします。数などが残っていて偶然動作しているだけだったりもします。slime-restart-inferior-lispは非常に便利です。非覚えておいてください。基礎編」ということで、SLIMEのインストールと設定、および非常に基本的な使い方を紹介しました。実際のところ、今回の内容だけでSLIMEで開発を行うにはかなり情報が不足しています。付いていると思いますが、パッケージの扱いなど、様々な重要な点を端折っています。次回以降、より実際的なSLIMEの使い方を紹介していきたいと思います。