Emacs中各种拼写检查模式的优缺点

12

我想知道有人是否能够权衡Emacs不同拼写模式的优缺点。 Emacswiki-CategorySpelling 提到了三种拼写检查模式:

  • Flyspell模式(默认模式)
  • Speck模式(似乎旨在比Flyspell更快)
  • Wcheck模式(旨在通用)

我还想知道这些模式中哪些提供了一种方法,使得拼写检查器可以跳过缓冲区的某些部分,具体取决于其语法(例如,在LaTeX文档中跳过数学模式部分,在AUCTEX模式下突出显示为棕色)。Flyspell似乎不能做到这一点


1
这可能会增加讨论的内容:Xah Lee对Flyspell模式的批评以及如何使Speck模式正常工作- http://xahlee.org/emacs/emacs_spell_checker_problems.html - Yoo
1个回答

6
你可以以多种方式使用部分的flyspell-mode。其中一种方法是使用多模式方法,在单个缓冲区中定义多个模式,其中一个模式用于编辑注释(例如),在该模式中启用flyspell-mode。我曾经为某些编程语言这样做,但现在找不到配置文件了,所以我想我不再使用那种语言了。此外,请参见mmm-mode获取更多信息。
第二种选择是使用`flyspell-prog-mode'(请参见)为缓冲区的某些部分设置flyspell mode,此处由字体面(大多数编程语言主要模式的字符串和注释都有特定的面)。 它使用回调函数来进行谓词调用,您可以根据需要定义它; 我维护TNT,这是Emacs的AIM模式,我们像这样使用它:
(defun tnt-im-mode-flyspell-verify ()
  "This function is used for `flyspell-generic-check-word-p' in TNT."
  (not (get-text-property (point) 'read-only)))

(put 'tnt-im-mode 'flyspell-mode-predicate 'tnt-im-mode-flyspell-verify)
(put 'tnt-chat-mode 'flyspell-mode-predicate 'tnt-im-mode-flyspell-verify)

关于 flyspell vs. speck vs. wcheck -- 我只用过 flyspell 模式。speck 看起来非常注重可视化,这可能是可以的,但通常我希望对我正在工作的文档进行整体拼写检查,所以我不会选择它。wcheck 似乎是一个通用接口,用于外部程序; 我猜你需要自己构建它的使用。flyspell 可以有两种不同的使用方式:实时检查,这是我通常使用的方式,以及“批处理模式”,其中整个区域或缓冲区一次性检查。前者非常快速,我从未找到更好的工具。后者可能有点慢,特别是当有很多拼写错误的单词和文档很大时,但我真的想不起来等待它完成超过15秒。虽然观看屏幕15秒并且什么也不做可能看起来很长时间,但实际上并不是。当然,你的情况可能有所不同。

底线:如果 flyspell-mode 满足您的需求,那么我建议坚持使用它。


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