在Emacs中覆盖小模式按键绑定

4
我是在emacs中使用paredit(一种Lisp次要模式)。 Paredit绑定了C-<left><C-right>来进行表达式的删除和插入,这并不是我喜欢的方式。
我正在尝试将按键绑定设置回left-wordright-word
如果我在一个使用paredit模式的缓冲区中评估以下代码,则可以成功覆盖绑定:
 (define-key paredit-mode-map (kbd "<C-left>") 'left-word)
 (define-key paredit-mode-map (kbd "<C-right>") 'right-word))

然而,当我在init.el中尝试使用eval-after-load做同样的事情时,它没有任何效果。
 (eval-after-load "paredit-mode"
    '(progn
       (define-key paredit-mode-map (kbd "<C-left>") 'left-word)
       (define-key paredit-mode-map (kbd "<C-right>") 'right-word)))

我已经将上述代码添加到我的init.el文件的末尾,但似乎没有任何变化。 如果您有任何想法,不妨分享一下,将不胜感激。
1个回答

4
尝试使用(eval-after-load "paredit...")代替(eval-after-load "paredit-mode...")eval-after-load的第一个参数FILE是文件名或特征名。 paredit-mode是命令(和模式)的名称,而不是文件或特征名。该文件是paredit.el

1
搞定了,谢谢。我想下次我会更仔细地阅读文档。 - raduw
1
非常感谢!这也解决了与smartparens相同的问题: '(progn (define-key smartparens-mode-map (kbd "") 'left-word) (define-key smartparens-mode-map (kbd "") 'right-word))) - Stefan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接