emacs - 无法在 Mac OS X 的 Emacs 中映射 Ctrl + 减号

标签 emacs key-bindings

我正在尝试将 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-- 在你的情况下。 应该发生以下两种情况之一:

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

UPD:如何取消设置 key

当您发现正在加载的某些源时,例如starter-kit 正在设置 key , 您只需稍后以相同的方式取消设置即可:

  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-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/

相关文章:

java - 捕获框架内的按键

keyboard - LXDE (Debian) 中的按键绑定(bind)

emacs - org-mode 使用当前颜色主题发布

emacs - 在 emacs 中突出显示行

java - 如何访问 Java 键绑定(bind)中定义的操作名称?

search - 如何将 current-prefix-arg 传递给此命令

java - 在何处以及如何实例化输入映射和 Action 映射

emacs - 'swank-clojure' 究竟做了什么,我们有 'swank-SOMETHING_ELSE' 吗?

Emacs 指令 : Retain lines instead of dired-do-kill-lines?

emacs - 无法评估 nrepl + emacs 中的表单