12

Emacs のさまざまなスペル モードの長所と短所について、だれかが検討できるかどうか疑問に思っています。Emacswiki-CategorySpelling では、スペル チェックの 3 つのモードについて言及しています。

  • Flyspell モード (デフォルト)
  • Speck モード (flyspell よりも高速になるように設計されているようです)
  • チェックモード。(汎用的に設計されています)

また、これらのモードのどれが、構文に応じてスペルチェッカーがバッファーの一部をスキップする方法を提供するかに興味があります (たとえば、AUCTEX で茶色で強調表示されている LaTeX ドキュメントの数学モード部分をスキップするため)。モード)。Flyspellはこれをしていないようです

4

1 に答える 1

6

いくつかの異なる方法で、部分的なフライスペル モードを実行できます。1 つは、単一のバッファーで複数のモードを定義するマルチモード アプローチを使用することです。そのうちの 1 つは、コメントを編集するモード (たとえば) で、flyspell-mode が有効になっています。以前はいくつかのプログラミング言語でこれを行っていましたが、その構成が見つからなくなったため、その言語はもう使用していないと思います。とにかく、詳細についてはmmm-modeを参照してください。

2 番目の代替方法は、`flyspell-prog-mode' (これを参照) を使用することです。これは、この場合はフォント フェイスによって定義される、バッファーの特定の部分に対して flyspell モードを設定します (ほとんどのプログラミング言語には、文字列とコメントに特定のフェイスがあります)。主要なモード)。これは、必要に応じて定義できる述語コールバック関数を使用します。私は Emacs の AIM モードである TNT を維持しており、次のように使用しています。

(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 と speck と wcheck について -- 私は flyspell モードしか使っていません。speck は、表示可能なものに非常に重点を置いているようですが、これは問題ありませんが、一般的に、作業中のドキュメント全体をスペルチェックしたいので、それは望ましくありません。wcheck は、外部プログラムへの一般的なインターフェイスのようです。その用途を自分で構築する必要があると思います。flyspell は 2 つの異なる方法で使用できます。私が通常使用する as-you-type と、領域またはバッファ全体を一度にチェックする「バッチ モード」です。前者は信じられないほど高速で、これより優れたツールを探す理由が見つかりませんでした。後者は、特にスペルミスの単語が多く、ドキュメントが大きい場合は少し遅くなる可能性がありますが、完了するまでに15秒以上待ったことは本当に覚えていません. 15 秒間画面を見て何もしないというのは、長い時間のように思えるかもしれませんが、実際にはそうではありません。もちろんYMMVです。

結論: もちろん、それがあなたのニーズを満たしていると仮定して、私は flyspell-mode を使い続けます。

于 2009-11-08T23:56:45.370 に答える