重新绑定OrgMode中的按键

3

可能重复:
在 EMACS org.mode 中覆盖 Ctrl-TAB

我正在尝试将 C-y 重新绑定为重做。 我尝试了所有可能的选项:

(global-unset-key (kbd "C-y")),在 org mode 钩子内外以及 (define-key org-mode-map (kbd "C-y") nil)。 但是什么都没有发生。在 OrgMode 外部它完美地工作,但是在里面?它会粘贴。 这实际上不是我在 OrgMode 内部无法工作的第一个 KeyBinding,这让我感到困惑。

请帮帮我。


1
如果你已经“尝试了所有可能的选项”,那么问这个问题就没有太多意义了,对吧? :) - phils
好的,我已经尝试了我目前所知道的所有选项。 - Devon Ville
这是一个重复的问题吗:https://dev59.com/52855IYBdhLWcg3wcz_y?(不清楚您是在加载org模式之前还是之后尝试设置`org-mode-map`绑定)。您也可以使用这种方法:https://dev59.com/YnE85IYBdhLWcg3whD7k。 - phils
我已经尝试过先加载和后加载。奇怪的是,对于local-set-key它确实有效。您有什么解释为什么在org-mode钩子内使用global-set-key无效吗? - Devon Ville
global-set-key 影响全局键位映射。local-set-key 影响(通常是)当前缓冲区主模式的键位映射。主模式键位映射优先于全局键位映射(次模式键位映射优先于主模式键位映射)。这篇文章是关于这个(有点复杂)主题的绝佳入门指南:http://www.masteringemacs.org/articles/2011/02/08/mastering-key-bindings-emacs/ - phils
谢谢你的提示。我曾经偶然发现过这个网站。现在我应该给它应有的赞扬;) 最终,我找到了这个方法:https://dev59.com/nHRB5IYBdhLWcg3wN1EQ#1758639。 - Devon Ville
1个回答

3
通过神奇的phils的快速帮助,我找到了以下两个东西: Globally override key binding in Emacs 目前我使用这个, http://www.masteringemacs.org/articles/2011/02/08/mastering-key-bindings-emacs/ 我会尽快阅读它。
感谢Phils;)
我的当前设置如下:
(defvar custom-keys-mode-map (make-keymap) "custom-keys-mode keymap.")
(define-minor-mode custom-keys-mode
  "A minor mode so that my key settings override annoying major modes."
  t " my-keys" 'custom-keys-mode-map)
(custom-keys-mode 1)

(defun my-minibuffer-setup-hook ()
  (custom-keys-mode 0))
(add-hook 'minibuffer-setup-hook 'my-minibuffer-setup-hook)

(defadvice load (after give-my-keybindings-priority)
  "Try to ensure that my keybindings always have priority."
  (if (not (eq (car (car minor-mode-map-alist)) 'custom-keys-mode))
      (let ((mykeys (assq 'custom-keys-mode minor-mode-map-alist)))
        (assq-delete-all 'custom-keys-mode minor-mode-map-alist)
        (add-to-list 'minor-mode-map-alist mykeys))))
(ad-activate 'load)
(define-key custom-keys-mode-map (kbd "<C-key>") 'some-command)

非常感谢,非常感激。我发现这个答案很有用,可以在org-mode中设置多个键,而之前尝试使用global-unset-key没有效果。 - lawlist

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接