3

Emacs で SICP を勉強したいです。MIT スキーム、Emacs 24 をインストールし、sicp 情報をダウンロードしました (このガイドhttp://www.pchristensen.com/blog/articles/setting-up-and-using-emacs-infomode/を使用)。これで、専用バッファー (Mx run-scheme) でスキーム インタープリターを実行できるようになりましたが、情報バッファー (Cx Ce)から定義式の 1 つを送信しようとすると、次のエラーが発生します。

Debugger entered--Lisp error: (void-function define)
  (define (abs x) (cond ((> x 0) x) ((= x 0) 0) ((< x 0) (- x))))
  eval((define (abs x) (cond ((> x 0) x) ((= x 0) 0) ((< x 0) (- x)))) nil)
  eval-last-sexp-1(nil)
  eval-last-sexp(nil)
  call-interactively(eval-last-sexp nil nil)

Emacs が Lisp インタプリタでこのコードを実行しようとしているようです。この問題の回避策として、スキーム バッファ (*.scm ファイル) を開き、info からコードをコピーし、Cx Ce で実行します。しかし、情報バッファから直接実行したいです。どうすればこれをセットアップできますか?

4

2 に答える 2

0

別の機能を実行したいので、これを試してください:

(define-key Info-mode-map (kbd "C-x C-e") 'lisp-eval-defun)
于 2011-11-04T16:36:27.983 に答える