xmp meets elisp

早速 scratch バッファで試してみた。

(require 'lispxmp)
lispxmp

(+ 3 4)    ; => 
Error in eval: (void-variable lispxmp)

2 行目 (require の結果) まで評価しようとしてる _| ̄|○

eval-last-sexp とか eval-region の xmp 版があればいいのかも知れない。

でも、それを作れるほど elisp に詳しくないので、ruby-scratch の要領で逃げてみた。

(add-hook 'emacs-lisp-mode-hook
	  (lambda ()
	    (define-key emacs-lisp-mode-map "\C-c\C-d" 'lispxmp)))
(defadvice comment-dwim (around rct-hack activate)
  "If comment-dwim is successively called, add => mark."
  (if (and (eq major-mode 'emacs-lisp-mode)
           (eq last-command 'comment-dwim))
      (insert " =>")
    ad-do-it))

comment-dwim の処理は rcodetools.el から、そのままコピった。
なるほど、こんなことできるんだ。

これで emacs-lisp-mode のバッファにいれば xmp し放題。
もう scratch バッファはいらない (かも?)