我喜欢使用C-j
到eval-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/