global-set-key但不包括特定模式

时间:2013-01-06 17:00:12

标签: emacs elisp emacs23

我正在尝试创建一个新的键绑定,它可以在除一个模式之外的所有模式下正常工作,它与另一个模式冲突。例如:

(global-set-key (kbd "<C-S-down>") 'move-line-down)

是否有一种简单的方法(没有为特定的本地模式设置它)使其全局排除特定模式?

2 个答案:

答案 0 :(得分:1)

您可以向after-change-major-mode-hook添加一个函数,该函数会在当前 local 键映射中设置键,但您希望避免的特定模式除外。

答案 1 :(得分:0)

如果要排除某个特定模式,可以执行以下操作:

(global-set-key (kbd "<C-S-down>") 'move-line-down) 

使其全球可用,

(define-key KEYMAP (kbd "<C-S-down>") nil) 

排除一种模式 其中KEYMAP是模式的名称,后跟“mode-map”(例如ess-mode-map)。 您也可以将原始内容绑定到密钥而不是nil