无法在Mac OS X中的Emacs中映射Ctrl + minus

时间:2013-07-22 10:11:31

标签: emacs key-bindings

我正在尝试将Ctrl +减号(“C--”)映射到Mac OS X 10.8.4中的Emacs 24.3(来自http://emacsformacosx.com)中的撤消,但我无法使其工作。似乎有一些非常全局的键绑定用于减小字体大小,我似乎无法覆盖。谁能告诉我我做错了什么?

我的.emacs中有以下内容。

(global-set-key (kbd "C--") 'undo)    ;; Doesn't work
(global-set-key (kbd "C-u") 'undo)    ;; Just for testing, does work

当我按下Ctrl + U时,它会触发撤消,但是当我按下Ctrl +减号时,它会减小字体大小。可能只是我应该使用“C--”以外的东西,但它看起来应该有效。我检查了键绑定(通过C-h b),在那里,C-u必然会撤消,但是C--必然会降低文本比例。可能有可能找到该键的绑定位置并获得一些线索,但我的Emacs-fu太弱了。

我使用的是Emacs的图形版本,而不是终端版本。

1 个答案:

答案 0 :(得分:3)

我经常遇到这些类型的问题 尝试 f1 k ,在我遇到问题的组合键之后, C - 在你的情况下。 应该发生以下两件事之一:

  1. 没有任何反应 - 这意味着正在拦截快捷方式 在操作系统层面。
  2. 它为您提供了被调用函数的描述。 它很可能是由您的主要模式或其中一种次要模式设置的。 所以你也应该调查一下,搜索引用 到这个函数,在你的情况下是text-scale-decrease。 找到global-set-keylocal-set-keydefine-key后 使用此功能,可以注释掉,也可以更好 在nil
  3. 中使用相同的快捷方式和~/.emacs调用相同的功能

    UPD:如何取消设置密钥

    当您发现某些来源正在加载时,例如starter-kit正在设置密钥, 你只需要以同样的方式取消它:

    1. 如果设置为(global-set-key (kbd "C--") 'text-scale-decrease), 你用(global-set-key (kbd "C--") nil)取消了它。
    2. 如果设置为(define-key markdown-mode-map (kbd "C--") 'text-scale-descrease), 你用(define-key markdown-mode-map (kbd "C--") nil)取消了它。
    3. 如果设置为

      (add-hook'markdown-mode-hook     (lambda()(local-set-key(kbd“C--”)'text-scale-descrease))

      你未设置

      (add-hook'markdown-mode-hook     (lambda()(local-set-key(kbd“C--”)nil))