sbcl+slimeの環境を整える
パッケージ管理ツール
common lispのパッケージ管理はasdfとかいうのが有名だったらしいんだけど、
ASDF-install is OBSOLETEとかでっかく書いてあってquicklispとかclbuildというのを勧められていたからそっちを入れる。
quicklisp
quicklisp.lispというのをここからダウンロードしてくる。
$ sbcl --load quicklisp.lisp * (quicklisp-quickstart:install)
ちなみにinstallのまえに(quicklisp-quickstart:help)とやるとインストールパスをかえられるみたい。
デフォルトは${HOME}/quicklisp。
* (ql:add-to-init-file)
とやると${HOME}/.sbclrcにquicklispのパスを通すのを書いてくれて、sbcl起動時に自動的にロードされるようになる。
quicklisp.lispをロードした処理系ごとのそれぞれ適切なinitファイルに書き込んでくれるみたい。
slime
ここを参考にslimeとかその周りのものもインストール。
Modern Common Lisp: 第3回 SLIMEの使い方 基礎編
slime
emacs内で
M-x list-packages
やってslimeをインストールする。
init.el内に
(setf inferior-lisp-program "/usr/local/bin/sbcl") ; your Lisp system (require 'slime-autoloads) (slime-setup '(slime-repl))
popwin
同じようにlist-packagesしてpopwinをインストールする。
init.elに
(require 'popwin) (popwin-mode 1) ;; Apropos (push '("*slime-apropos*") popwin:special-display-config) ;; Macroexpand (push '("*slime-macroexpansion*") popwin:special-display-config) ;; Help (push '("*slime-description*") popwin:special-display-config) ;; Compilation (push '("*slime-compilation*" :noselect t) popwin:special-display-config) ;; Cross-reference (push '("*slime-xref*") popwin:special-display-config) ;; Debugger (push '(sldb-mode :stick t) popwin:special-display-config) ;; REPL (push '(slime-repl-mode) popwin:special-display-config) ;; Connections (push '(slime-connection-list-mode) popwin:special-display-config)
ヘルプバッファや補完バッファをポップアップで表示してくれるpopwin.elをリリースしました - Functional Emacser
いろんな設定ができるみたいだけどとりあえずインストールしたときに言われたことだけやった。
ac-slime
オートコンプリート機能
同じくlist-packages
init.elに
(require 'ac-slime) (add-hook 'slime-mode-hook 'set-up-slime-ac) (add-hook 'slime-repl-mode-hook 'set-up-slime-ac) (eval-after-load "auto-complete" '(add-to-list 'ac-modes 'slime-repl-mode))
こんなもんか。
C-c C-cでトップレベルフォームをコンパイル
C-c C-kでバッファ全体をコンパイル
M-x slime-restart-inferior-lispでリセット