取消设置键在Emacs绑定(Unset key binding in emacs)

2019-07-17 11:15发布

例如,在禅编码的码中,“CJ”阴影“CJ”(的正常行为newline-and-indent

(define-key zencoding-mode-keymap (kbd "C-j") 'zencoding-expand-line)

然后,我怎么可以不设置这个键绑定,并使用Cjnewline-and-indent一次?

我想这一点,但它不工作:

(add-hook 'html-mode-hook
          (lambda ()
            (progn
              (zencoding-mode)
              (local-set-key (kbd "C-j") 'newline-and-indent))))

有没有人有这个想法?

Answer 1:

解除绑定密钥(对于任何键映射)的一般方法是定义的结合nil

(define-key KEYMAP KEY nil)

为了方便起见,也有来自全球的键盘对应,并从本地键盘映射( 通常是主要模式的键盘映射)解除绑定两个标准功能。

  • (global-unset-key KEY)
  • (local-unset-key KEY)

那些部分是交互式命令,按照各自的互补global-set-keylocal-set-key

关于你提到的具体的例子,你可能想是这样的:

(eval-after-load "zencoding-mode"
  '(define-key zencoding-mode-keymap (kbd "C-j") nil))


文章来源: Unset key binding in emacs