簡體   English   中英

在Emacs中,如何更改orgstruct-mode的鍵綁定?

[英]in Emacs, how to change key bindings for orgstruct-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中使用這些相同的鍵綁定,該鍵綁定運行在top message-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的鍵映射?

將鍵定義為nil解除綁定。 通過取消綁定orgstruct-mode-map (次要模式)中的鍵,您已經暴露了message-mode-map (主要模式)綁定。 您可以通過主動將這些鍵綁定到orgstruct-mode-map來覆蓋message-mode-map鍵綁定,但是如果要取消綁定它們,則還需要取消綁定message-mode-map的鍵。

這是在兩個地圖中取消綁定所有這些鍵的方法:

(cl-dolist (map '(message-mode-map orgstruct-mode-map))
  (cl-dolist (key '("<M-S-left>" "<M-S-right>" "<M-S-up>" "<M-S-down>"
                    "<M-left>" "<M-right>" "<M-up>" "<M-down>"))
    (define-key (eval map) (kbd key) nil)))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM