私のinitには次のコードがあります:
(defadvice kill-buffer (around show-diff-rephrase-question activate compile)
"Prompt when a buffer is about to be killed."
(case (read-char-choice
"(s/k/q)? "
(append "sSKkQq" nil))
((?s ?S)
ad-do-it)
((?k ?K)
ad-do-it)
((?q ?Q) nil))
ad-do-it)
eval-buffer
私がそれを評価するために呼び出すとき、それは働きます。ただし、initファイルをコンパイルすると、次のようになります。
無効な機能:(115 83)
(case ...)
sexpのマクロ展開を挿入すると、コンパイルされたファイルとして機能します。