SLIMEの設定をちょっと変えた

最近、自宅のWindowsマシンでCommon Lispの勉強をしています。IDEEmacsSLIMEを使っているのですが、ところどころ手になじまない部分があるので、ちょことだけカスタマイズしてみました。

;; SLIME環境の設定
(unless (package-installed-p 'slime)
  (package-refresh-contents)
  (package-install 'slime))
(setq inferior-lisp-program "c:/sbcl/sbcl.exe")
(require 'slime)
(slime-setup '(slime-fancy))
(add-hook 'lisp-mode-hook (lambda ()
                            (slime-mode t)
                            (show-paren-mode)
                            (slime-autodoc-mode)
                            (setq transient-mark-mode t)))
;; キーバインドのカスタマイズ
(define-key slime-mode-map (kbd "C-x C-e") 'slime-eval-last-expression-in-repl)
(define-key slime-repl-mode-map (kbd "C-t") 'other-window)

前半のSLIME環境は、SLIMEがインストールされていなかったらパッケージをインストールし、使用するCommon Lisp処理系を指定して、各種設定を行うという基本部分です。

後半のキーバインドが今回追加したものです。デフォルトでC-x C-eには'slime-eval-last-expressionが割り当てられていて、カーソルキーの直前までの式を評価してエコーエリアに結果を表示します。これを、式をREPLにコピーしてから評価してくれる'slime-eval-last-expression-in-replに変更しました。カーソルはREPL側に移動しますので、ソースコード側に戻すためにC-tを追加しています(デフォルトでC-tはカーソル位置の2文字を入れ替えるという使わない機能なのでいいでしょう)。

他にもParEditやRainbow Delimitersも使っていますし、HyperSpecをewwで見られるようにしてもあります。いずれこのエントリに追記するかもです。