最近、自宅のWindowsマシンでCommon Lispの勉強をしています。IDEはEmacsとSLIMEを使っているのですが、ところどころ手になじまない部分があるので、ちょことだけカスタマイズしてみました。
;; 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で見られるようにしてもあります。いずれこのエントリに追記するかもです。