如何默认启用自动拼写检查?

11

我找不到可以添加到 init 文件中以默认开启自动拼写检查的内容。

可以从菜单中启用自动拼写检查(Flyspell)--也许有一种方法可以学习菜单项的工作方式?


1
我不确定这是否是一个编程问题。听起来不像。尝试超级用户?(我是vim用户,无论如何都不能帮忙) - dequis
2
当然这是一个编程问题,因为你只能通过编程实现。以下是如何完成它的答案:https://dev59.com/s2w15IYBdhLWcg3wD3Zk#6861176 - Onlyjob
1
是的,我知道emacs使用lisp,但这似乎仍然意味着你想使用编辑器的某个功能而不是编写代码。无论如何,这个答案是否符合您的期望?如果是,您应该关闭此答案或将其编辑为其他内容。 - dequis
1个回答

20

我在我的init.el文件中有以下内容:

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

这完全满足了我的编辑需求。

如果您习惯于面向对象编程,那么钩子就像“事件”或观察者模式:它们是在某些时间点运行的函数列表。添加您自己的函数到这些钩子中是定制Emacs的主要方式之一。

大多数Emacs模式在启用时都会调用一个钩子。prog-mode是从中派生出编程模式的模式,因此将函数添加到prog-mode-hook可定制所有编程模式。

有关此内容的最佳参考资料是内置的Emacs Lisp手册(C-h rM-x info-emacs-manual)。它有关于Emacs Lisp编程的章节,包括一个有关钩子的章节。


2
谢谢。我还添加了 (setq ispell-dictionary "british") 来选择默认字典。 - Onlyjob
我发现你的解决方法对许多文件类型都不起作用。例如,emacs foo.log 不会启用拼写检查,而 emacs foo.log.txt 会启用。以下方法似乎适用于所有文件:(add-hook 'find-file-hooks 'turn-on-flyspell) - Onlyjob

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接