gpt4 book ai didi

emacs,flyspell,停用 "C-."键绑定(bind)

转载 作者:行者123 更新时间:2023-12-04 17:23:23 24 4
gpt4 key购买 nike

我有这个小问题,我有一些像这样的键绑定(bind)C-. C-xC-. C-m .激活 flyspell 模式后,我无法使用这些命令。在我的 .emacs 文件中,我之前有接下来的 2 行

(global-unset-key (kbd "C-."))
(define-key (current-global-map) (kbd "C-.") nil)
(global-set-key (kbd "C-. C-l") 'global-linum-mode)

然后,我的 C-. C-l有效,但在激活 flyspell 模式时无效。绑定(bind)到 C-. 的命令是 flyspell-auto-correct-word .我试图按如下方式停用它:
;; first try
(defun flyspell-auto-correct-word-disable() (define-key (current-local-map) (kbd "C-.") nil))
(add-hook 'flyspell-mode-hook 'flyspell-auto-correct-word-disable)
;; second try
(define-key (current-global-map) [remap flyspell-auto-correct-word] nil)

尝试都不起作用,我该怎么办?我在 Emacs 23 和 24 中尝试过,我遇到了同样的问题。

最佳答案

关于什么:

(eval-after-load "flyspell"
'(define-key flyspell-mode-map (kbd "C-.") nil))

您的第一个解决方案几乎是正确的,但您必须记住当前本地 map 是由主要模式设置的,而不是次要模式。直接访问 flyspell-mode-map 的最佳选择并修改它(另一种选择是在 minor-mode-map-alist 中找到它,但我认为它会不必要地复杂)。

此外,我更喜欢将此类特定于模式的设置放在 eval-after-load 中。 (这意味着它们将被评估一次)而不是在 Hook 中(在这种情况下,设置被评估多次:每次一个缓冲区激活 flyspell-mode )。但这是一个偏好问题,任何一种方式都可以。

关于emacs,flyspell,停用 "C-."键绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16084022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com