【问题标题】:pros and cons of various spell checking modes in emacsemacs 中各种拼写检查模式的优缺点
【发布时间】:2009-11-09 07:56:45
【问题描述】:

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

  • Flyspell 模式(默认一种)
  • Speck 模式(似乎被设计成比 flyspell 更快)
  • 检查模式。 (设计为通用)

我还对这些模式中的哪一种提供了一种方法让拼写检查器根据其语法跳过缓冲区的一部分感兴趣(例如,为了跳过 LaTeX 文档中的数学模式部分,这些部分突出显示为AUCTEX 模式下为棕色)。 Flyspell doesn't seem to do this

【问题讨论】:

标签: emacs spell-checking


【解决方案1】:

您可以通过多种不同的方式执行部分飞行拼写模式。一种是使用多模式方法,在单个缓冲区中定义多个模式,其中一种是编辑 cmets 的模式(例如),其中启用了 flyspell-mode。我曾经为某种编程语言这样做,但我再也找不到它的配置了,所以我想我不再使用那种语言了。无论如何,请参阅mmm-mode 以获取更多信息。

第二种选择是使用`flyspell-prog-mode'(见)为缓冲区的某些部分设置flyspell模式,在这种情况下由字体定义(字符串和cmets有特定的面)大多数编程语言主要模式)。它使用谓词回调函数,可以根据需要进行定义;我维护 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 可以使用两种不同的方式:as-you-type,这是我通常使用的方式,以及“批处理模式”,其中一次检查整个区域或缓冲区。前者速度快得令人难以置信,而且我从来没有找到寻找更好工具的理由。后者可能有点慢,特别是当有很多拼写错误的单词并且文档很大时,但我真的不记得等待超过 15 秒才能完成。看着屏幕 15 秒,什么也不做,看起来很长,其实不然。当然是 YMMV。

底线:我会坚持使用 flyspell-mode,当然前提是它满足您的需求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-26
    • 1970-01-01
    • 2016-01-22
    • 2013-08-19
    • 2012-02-22
    • 1970-01-01
    • 2010-09-10
    • 1970-01-01
    相关资源
    最近更新 更多