#emacs #clojure #key
#emacs #clojure #Клавиша
Вопрос:
Я новичок в emacs, поэтому мне нужен простой совет. Я хотел бы использовать Command-RET для оценки последнего выражения — для этого:
clojure-mode.el:
(define-key map "C-xC-e" 'lisp-eval-last-sexp)
И я не хочу изменять исходный файл clojure-mode.el. Как я могу определить привязку ключа, которая будет выполнять C-x C-e и которая будет вызывать ‘lisp-eval-last-sexp? Для меня это было бы отличным решением, потому что я не могу напрямую связать Command-RET с:
local-set-key
для ‘lisp-eval-last-sexp emacs не может найти эту функцию.
заранее спасибо, Бартек
Обновить:
наконец оказалось, что мне нужно написать:
M-x
describe-key
^X ^E
и это вернуло меня:
^X ^E runs the command slime-eval-last-expression, which is an
interactive Lisp function in `slime.el'.
It is bound to ^X ^E, <menu-bar> <SLIME> <Evaluation> <Eval Last
Expression>, <A-return>.
(slime-eval-last-expression)
Evaluate the expression preceding point.
[back]
а затем я привязал свои ключи к функции
'slime-eval-last-expression
спасибо за вашу помощь 🙂
Комментарии:
1. Ir
eval-last-sexp
не должно бытьlisp-eval-last-sexp
?2. нет, это работает по-другому
3. Смотрите Ответ ниже. Попробуйте eval-print-last-sexp, это то, к чему привязан C-j в моем emacs.
Ответ №1:
Вы можете повторно привязать ключи в своем файле .emacs, вам не нужно изменять clojure-mode.el,
(add-hook 'clojure-mode-hook
'(lambda ()
(define-key clojure-mode-map
"eC-x" 'lisp-eval-defun)))
Комментарии:
1. Вам не хватает
C-
в вашемdefine-key
?2. Странно, но полезно знать. Возможно, вы захотите исправить это в любом случае, чтобы это было понятнее. Не знаю, что здесь происходит.
Ответ №2:
Я полагаю, что вместо этого вы хотите установить для него значение eval-print-last-sexp. Это то, к чему привязан Си-джей.