我喜欢使用C-jeval-last-sexp,但是paredit-mode(我否则喜欢)将其覆盖到paredit-newline。在paredit模式文档中查看,我看不到定义了paredit-mode-hook的地方,在这里我可以通过add-hook调用local-set-key或类似函数。

有人有建议吗?

更新
在尝试了以下两个答案并且没有取得很大成功之后,我认为问题可能与以下事实有关:在一些不同的上下文中加载paredit?我打开了Common Lisp,Clojure和Emacs Lisp文件,所有这些文件都可以使用paredit。可悲的是,每种形式的eval-last-sexp的名称在每种模式下都略有不同,因此我无法为所有内容一次定义键。相反,我需要根据自己所处的主要模式来绑定(bind) key 。希望这会增加另一个有用的数据点。

最佳答案

无需使用钩子(Hook),类似以下内容的方法应该起作用:

(eval-after-load "paredit"
  #'(define-key paredit-mode-map (kbd "C-j") 'eval-last-sexp))

或者,如果由于某种原因不起作用,或者您只是喜欢使用钩子(Hook),则可以将上述define-key调用添加到激活paredit的主要模式的钩子(Hook)中。

关于emacs - 是否有可用的Emacs paredit钩子(Hook),所以我可以重新定义C-j?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11234697/

10-11 16:15