4

我有两个问题,我认为它们有些相关:

1)在 IDO 中,我想将 ido-restrict-to-matches 更改为除C-SPCor之外的相同内容C-@。不幸的是,我不知道如何告诉 emacs 我想要一个不同的快捷方式(比如C-0)。

2)我想保护我的C-;,但只要 flyspell-mode 运行它就会超过C-;. 我的定义在 .emacs 中为:

(global-set-key (kbd "C-;") 'mark-paragraph)

但显然flyspell覆盖了这个......(尽管即使那样,如果我查看M-h k C-;它确实说的帮助mark-paragraph

有人可以告诉我如何在这些条件下绑定/取消绑定键吗?它必须在不修改 ido.el 和 flyspell.el 并重新构建的情况下工作,对吗?

非常感谢!

4

1 回答 1

9

Flyspell 为C-;绑定提供了自定义,因此您可以M-x customize RET flyspell-auto-correct-binding RET或在您的~/.emacs:

(setq flyspell-auto-correct-binding (kbd "C-~")) ; or a binding of your choice

至于ido,你的问题有点令人困惑,因为它暗示有时你在迷你缓冲区之外使用 ido ......

ido.el 中的文档包含以下建议:

;; To modify the keybindings, use the ido-setup-hook.  For example:
;;(add-hook 'ido-setup-hook 'ido-my-keys)
;;
;;(defun ido-my-keys ()
;;  "Add my keybindings for ido."
;;  (define-key ido-completion-map " " 'ido-next-match)
;;  )

使用这些知识,您可以在自己的“ido-my-keys”函数中更改这样的键绑定:

(define-key ido-completion-map (kbd "C-SPC") nil)
(define-key ido-completion-map (kbd "C-@") nil)
(define-key ido-completion-map (kbd "C-0") 'ido-restrict-to-matches)

还有一个额外的 ido 钩子专门用于 minibuffer,但不清楚你为什么需要它:ido-minibuffer-setup-hook.

于 2011-07-08T13:23:36.567 回答