禁用前缀键绑定

时间:2011-06-24 22:45:58

标签: shell emacs key-bindings emacs23

在emacs的shell模式下,退出shell模式('comint-interrupt-subjob)的当前键绑定是"\C-c \C-c",我想像普通的linux shell一样将它改为"\C-c"。我试过了

(add-hook 'shell-mode-hook '(lambda ()
  (local-set-key "\C-c" 'comint-interrupt-subjob)
))

但它没有用。可能我需要禁用分配给"\C-c"的前缀。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

试试这个:

(eval-after-load "shell"
  '(define-key shell-mode-map (kbd "C-c") 'comint-interrupt-subjob))

通常,当您定义键时,您应该在特定的键盘图中定义它们,而不是仅仅希望local-set-key执行您想要的操作。

注意:我更喜欢使用kbd来描述密钥,您的"\C-c"可以正常使用。

答案 1 :(得分:2)

(define-key (current-local-map) "^C" 'comint-interrupt-subjob)

这将在没有local-set-key

错误检查的情况下完成工作