我将 emacs 设置为默认使用文本模式打开 flyspell

(add-hook 'flyspell-mode-hook 'flyspell-buffer)
(add-hook 'text-mode-hook 'flyspell-mode)

我想在组织模式文件中自动禁用它,并且我确实设法在组织模式 Hook 中使用 lambda 函数禁用了它:
(add-hook 'org-mode-hook (lambda () (flyspell-mode -1)))

这是有效的,但是 flyspell 确实保留的语法高亮更改仍然存在,并且会干扰 org 模式的语法高亮。我还在 minibuffer 中看到,当我访问该文件时,flyspell 确实运行了,所以显然它只是在之后关闭。我如何关闭它以在组织模式文件中不留下任何痕迹,或者更好的是根本不运行?

最佳答案

您可以通过检查主要模式有选择地在文本模式 Hook 中启用 flyspell。以下将在 text-mode 及其派生模式中启用 flyspell,org-mode 除外

(add-hook 'flyspell-mode-hook 'flyspell-buffer)

(add-hook 'text-mode-hook (lambda ()
                                 (when (not (equal major-mode 'org-mode))
                                   (flyspell-mode t))))

关于emacs - 无法在组织模式下正确禁用 flyspell,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21279118/

10-15 08:44