Vim使いのslime入門(1)
実践Common Lispを買いました。1,2年前、Common Lispの勉強を初めたころに、Web上で、Practical Common Lispを読んだ思い出があります。といっても、全部ではなくて、前半くらいだけで挫折してますが;;
Practical Common Lisp
Practical Common Lisp
この資料を読む前は、Lispというものに興味はあるものの非常に難しいものだな、と感じていたものですが、このWebの資料を読むことで比較的新しいCommon Lispの思考方法が、それなりに理解できました。Lisp勉強の初期段階に読めて良かったです。
本屋で翻訳された実践Common Lispをパラパラ眺めてみると、最初のところにLisp in a boxのことが紹介されていて、Lispのオールインワンの最高の開発環境とのことでした。
実は、slimeというものを全く知りません。1、2年前Common Lispを勉強しはじめてから、vim + clisp + hyperspec読みツール(id:ytakenakaさん作のツールです)で、こじんまりと作業するのが楽しかったのです。
なんとなく、Lispというプログラミング言語をプリミティブに肌で感じてみたいという思いから、便利な開発環境には触手が伸びませんでした。
ということで、Vim使いがslimeに触れてみるという意味で、いくつかエントリを書いてみようかと思います。
インストール
実は、lisp in a box をgoogleで検索して、Hitするページ(http://common-lisp.net/project/lispbox/)には、Linux用バイナリは置いてないので、ソースをコンパイルしようとすると、嵌るかもしれません。(実は、数時間嵌ってましたorz.)
- OSは、debian on VMware
- Common Lispの処理系は、今まで使っていたこともあるので、clispにしました。
実際、実践Common Lispには、http://gigamonkeys.com/lispbox/ というURLが紹介されているので、ここから、GNU/Linux x86 の CLISP 版をダウンロードしました。
$ cd ~/src $ wget http://common-lisp.net/pcl/linux/lispbox-0.7-clisp-2.36.tar.gz $ tar zxf lispbox-0.7-clisp-2.36.tar.gz $ su # cp -r lispbox-0.7 /usr/local/ # cd /usr/local/bin # ln -s /usr/local/lispbox-0.7/lispbox.sh lispbox
ダウンロードして展開しただけで、そのまま起動できてしまったのですが、自分のHOME配下に置いとくのもなんなので、/usr/local に置いて、/usr/local/bin/lispbox としてシンボリックリンクを作成しました。
あと、lispbox.shの最初のLISPBOX_HOME設定部分は、は、無理矢理フルパス指定に変えてしまいました。
export LISPBOX_HOME=/usr/local/lispbox-0.7
これで、インストールは完了です。敷居が高いというイメージを覆す程に簡単です。
起動
$ lispbox
で、emacsが立ち上がって、いろいろ画面が流れたり、アニメーション?が表示されて、slimeが立ち上がりました。
ちょっと数字やら文字列やらを評価させたりしてみました。
; SLIME 2005-11-22 CL-USER> 1 1 CL-USER> "helo" "helo" CL-USER> (+ 1 2 3) 6 CL-USER> (mapcar #'(lambda (x) (1+ x)) '(1 2 3)) (2 3 4) CL-USER>
ここで、ひとつ不満が。。。
^H でヘルプ呼び出しなこと。^HはBSとして使いたい。
lispbox.sh を少し編集して、パッケージでインストールされたemacs用の設定ファイル(~/.emacs)を使うようにしてみました。*1
最終的にlispbox.shは、下のように変更しました。
# diff lispbox.sh.org lispbox.sh 2,6c2 < if [ "${0:0:2}" = "./" ]; then < export LISPBOX_HOME=`pwd` < else < export LISPBOX_HOME=`dirname $0` < fi --- > export LISPBOX_HOME=/usr/local/lispbox-0.7 32c28 < exec ${LISPBOX_HOME}/emacs-21.4/bin/emacs --no-init-file --no-site-file --eval='(progn (load "lispbox") (slime))' --- > exec ${LISPBOX_HOME}/emacs-21.4/bin/emacs -geometry 150x50 --no-site-file --eval='(progn (load "lispbox") (slime))'
追記2008/11/13 起動時の画面サイズを指定するためgeometryパラメータを追加しました。
これで、lispboxのemacsも、~/.emacsを読んでくれるようになり、背景やフォントや、^Hの動作も希望通りになりました。
続く
*1:emacsは、howmとnavi2chを使うくらいというライトユーザですが、~/.emacsで ^HはBSとする設定をしています。