在Emacs中,如何更改orgstruct-mode的键绑定?

时间:2014-06-27 14:29:52

标签: emacs org-mode

我为org-mode使用自定义键绑定:

(eval-after-load "org"
'(progn
 (define-key org-mode-map (kbd "<M-S-left>") nil)
 (define-key org-mode-map (kbd "<M-S-right>") nil)
 (define-key org-mode-map (kbd "<M-S-up>") nil)
 (define-key org-mode-map (kbd "<M-S-down>") nil)
 (define-key org-mode-map (kbd "<M-left>") nil)
 (define-key org-mode-map (kbd "<M-right>") nil)
 (define-key org-mode-map (kbd "<M-right>") nil)
 (define-key org-mode-map [C-S-right] 'org-shiftmetaright)
 (define-key org-mode-map [C-S-left] 'org-shiftmetaleft)
 (define-key org-mode-map [C-right] 'org-metaright)
 (define-key org-mode-map [C-left] 'org-metaleft)
 (define-key org-mode-map [C-up] 'org-metaup)
 (define-key org-mode-map [C-down] 'org-metadown)
 (define-key org-mode-map [C-S-return] 'org-insert-todo-heading)
 ))

我想在orgstruct-mode中使用这些相同的键绑定,我运行超越消息模式。我尝试过的不起作用:

 (define-key orgstruct-mode-map (kbd "<M-S-left>") nil)
 (define-key orgstruct-mode-map (kbd "<M-S-right>") nil)
 (define-key orgstruct-mode-map (kbd "<M-S-up>") nil)
 (define-key orgstruct-mode-map (kbd "<M-S-down>") nil)
 (define-key orgstruct-mode-map (kbd "<M-left>") nil)
 (define-key orgstruct-mode-map (kbd "<M-right>") nil)
 (define-key orgstruct-mode-map (kbd "<M-up>") nil)
 (define-key orgstruct-mode-map (kbd "<M-down>") nil)

如何更改orgstruct-mode的键映射?

1 个答案:

答案 0 :(得分:2)

定义nil取消绑定的密钥。通过解除orgstruct-mode-map(次要模式)中的键的绑定,您已经暴露了message-mode-map(主要模式)绑定。您可以通过在message-mode-map中主动绑定这些键来覆盖orgstruct-mode-map键绑定,但是如果您要取消绑定它们,则需要取消绑定{{1}中的键也是。

这是一种在两个地图中取消绑定所有这些键的方法:

message-mode-map