2012-03-30 10 views
0

のlisp-対話モードマップ:しかし定義キー:シンボルの関数定義は無効である:私はキーにバインドするスニペットんだ

(define-key (lisp-interaction-mode-map) (kdb "C-c e") 
    (let ((result (eval (read (buffer-substring 
          (point-at-bol) (point-at-eol)))))) 
    (goto-char (point-at-eol)) 
    (insert (format " ; %s" result)))) 

を、ときC-c vその*scratch*で、IあなたはLispはあなたがlisp-interaction-mode-mapという名前の関数を呼び出したいことを意味すると解釈lisp-interaction-mode-mapの周りに括弧を、持っている

define-key: Symbol's function definition is void: lisp-interaction-mode-map 

答えて

3

を取得します。代わりに、変数として使用したいと考えています。

私はまた、あなたが仕事をしなければならないものを取得する必要がありますいくつかの他の編集をしました。私は、ユーザーが入力した文字列の入力を求めるためにreadを書いたと仮定:

(define-key lisp-interaction-mode-map (kbd "C-c C-e") 
    (lambda (result) 
    (interactive (list (read-from-minibuffer (buffer-substring (point-at-bol) (point-at-eol))))) 
    (goto-char (point-at-eol)) 
    (insert (format " ; %s" result)))) 
+0

いや、それはいけません。それはelispの現在の行を評価および行の最後に結果を追加する必要があります。 – Reactormonk

+0

は、あなただけの 'C-j'をやってみましたか?結果は次の行に置かれますが、それでもなお... –

+0

Huh。そのホットキーにはどのような機能がありますか?これは、 'paredit'関数にバインドされています。 – Reactormonk

0

正規形が悪いのか?

(define-key lisp-interaction-mode-map [(control e)] 'eval-defun) 
関連する問題