【问题标题】:emacs key bindingemacs 键绑定
【发布时间】:2011-10-14 11:47:08
【问题描述】:

我是 emacs 新手,所以我需要简单的提示。我想使用 Command-RET 来评估最后一个表达式 - 这样做:

clojure-mode.el:

(define-key map "\C-x\C-e" 'lisp-eval-last-sexp)

而且我不想更改原始的 clojure-mode.el 文件。如何定义将执行 C-x\C-e 并调用“lisp-eval-last-sexp”的键绑定?这对我来说是一个很好的解决方案,因为我不能直接将 Command-RET 绑定到:

local-set-key

to '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

感谢您的帮助:)

【问题讨论】:

  • Ir 应该是 eval-last-sexp 而不是 lisp-eval-last-sexp
  • 不,它的工作方式不一样
  • 见下面的答案。试试 eval-print-last-sexp,这就是 C-j 在我的 emacs 中所绑定的。

标签: emacs clojure key


【解决方案1】:

您可以在 .emacs 文件中重新绑定密钥,而无需更改 clojure-mode.el,

(add-hook 'clojure-mode-hook
                '(lambda ()
                   (define-key clojure-mode-map 
                     "\e\C-x" 'lisp-eval-defun)))

【讨论】:

  • 您的define-key 中是否缺少\C-
  • 奇怪但很高兴知道。无论如何可能想要修复它,所以这更清楚。不知道这里发生了什么魔法。
【解决方案2】:

我相信您想将其设置为 eval-print-last-sexp。这就是 C-j 所必须的。

【讨论】:

    猜你喜欢
    • 2016-12-15
    • 1970-01-01
    • 2022-01-21
    • 2010-11-27
    • 2023-03-17
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 2014-10-31
    相关资源
    最近更新 更多