xml – 如何在emacs中启用所有文件和所有主要模式的flyspell模式?

一旦Emacs启动,您如何使flyspell模式自动用于每个文件和每个主要模式?

另外,是否有XML字典不会将XML标记标记为拼写错误的单词?

有可能的是,您不希望所有模式启用flyspell模式,而是希望对主要处理文本(文本模式,消息模式等)的模式启用flyspell模式,并使用flyspell-prog-mode对于编程模式(C/C++, Java, Ruby,Lisp等).两种模式之间的区别在于首先检查所有单词,而flyspell-prog模式只检查注释和字符串中的单词(从而避免检查代码,通常不是单词).

无论哪种方式,没有一个地方可以在所有的文件/缓冲区中启用flyspell,因为它已被写入总是缓冲区本地.将近似近似

(defun turn-on-flyspell () (flyspell-mode 1))
(add-hook 'find-file-hooks 'turn-on-flyspell)

这不包括没有关联文件的缓冲区,我不建议使用它,因为它不区分编程模式和非编程模式 – 我认为是有用的.

由于无法知道某些模式是否为编程模式,因此您需要手动添加您关心的所有编程模式的自定义,具体如下:

(mapcar (lambda (mode-hook) (add-hook mode-hook 'flyspell-prog-mode))
        '(c-mode-common-hook tcl-mode-hook emacs-lisp-mode-hook 
          ruby-mode-hook java-mode-hook))

注意:这两个代码块可能不能很好的一起玩.

而且,关于XML,flyspell已经有sgml-mode,html-mode和nxml-mode的定制功能,无法拼写检查标签(从Emacs 23.2开始).如果您使用的是较早版本的Emacs(回到21.1),您应该可以将其添加到.emacs以获得对nxml-mode的支持:

(put 'nxml-mode 'flyspell-mode-predicate 'sgml-mode-flyspell-verify)
相关文章
相关标签/搜索