我正在尝试将 Ctrl + 减号(“C--”)映射到 Mac OS X 10.8.4 中的 Emacs 24.3(来自 http://emacsformacosx.com )中的撤消操作,但我无法让它工作。似乎有一些非常全局的键绑定(bind)用于减小字体大小,我似乎无法覆盖它。谁能告诉我我做错了什么?
我的 .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--”以外的东西,但看起来它应该可以工作。我检查了键绑定(bind)(通过 C-h b),其中 C-u 绑定(bind)到撤消,但 C-- 绑定(bind)到文本缩放减少。也许可以找到该键的绑定(bind)位置并获得一些线索,但我的 Emacs-fu 太弱了。
我使用的是图形版本的 Emacs,而不是终端版本。
最佳答案
对于这些类型的问题,我通常 尝试 f1 k 并在我遇到问题的组合键之后, C-- 在你的情况下。 应该发生以下两种情况之一:
- 没有任何反应 - 这意味着快捷方式被拦截 在操作系统级别。
- 它为您提供正在调用的函数的描述。
它很可能是由您的主要模式或次要模式之一设置的。
所以你也应该调查一下,搜索引用文献
对于此函数,在您的情况下为
text-scale-decrease
。 找到global-set-key
、local-set-key
或define-key
后 使用此功能,要么将其注释掉,要么更好 在~/.emacs
中使用相同的快捷方式和nil
调用相同的函数。
UPD:如何取消设置 key
当您发现正在加载的某些源时,例如starter-kit
正在设置 key ,
您只需稍后以相同的方式取消设置即可:
- 如果使用
(global-set-key (kbd "C--") 'text-scale-decrease) 设置
, 您可以使用(global-set-key (kbd "C--") nil)
取消设置。 - 如果使用
(define-key markdown-mode-map (kbd "C--") 'text-scale-descrease) 设置
, 您可以使用(define-key markdown-mode-map (kbd "C--") nil)
取消设置。 如果设置为
(add-hook 'markdown-mode-hook (lambda()(local-set-key (kbd "C--") 'text-scale-decrease))
您取消设置
(add-hook 'markdown-mode-hook (lambda()(local-set-key (kbd "C--") nil))
关于emacs - 无法在 Mac OS X 的 Emacs 中映射 Ctrl + 减号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17784902/