[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Trouble using a lambda in the key-translation-map
From: |
Barry OReilly |
Subject: |
Trouble using a lambda in the key-translation-map |
Date: |
Wed, 18 Jul 2012 18:45:08 -0400 |
As the Elisp manual describes, one can bind a key to a function in the
key-translation-map, and use that function to programmatically
determine what to translate the key to.
http://www.gnu.org/software/emacs/manual/html_node/elisp/Translation-Keymaps.html
I got this to work for functions defined with defun, but can't get it
to work with a lambda. In an 'emacs -q' session, I put this in the
scratch buffer:
(defun my-translate-key (prompt) (interactive) (kbd "C-c"))
(define-key key-translation-map (kbd "C-e") (lambda (prompt)
(interactive) (kbd "C-c"))) ; Doesn't work
(define-key key-translation-map (kbd "C-e") 'my-translate-key) ; Works
I evaluate the first and second sexp, and find C-e still goes to the
end of the line. When I next execute the third sexp, C-e now
translates to C-c. Why doesn't the second sexp enable the translation
from C-e to C-c?
- Trouble using a lambda in the key-translation-map,
Barry OReilly <=