18.4 スペルのチェックと訂正

このセクションでは、1つの単語、またはバッファーの一部のスペルをチェックするコマンドを説明します。これらのコマンドはHunspell、Aspell、Ispell、またはEnchantのうちのいずれかのスペルチェッカープログラムがインストールされている場合だけ機能します。これらのプログラムはEmacsの一部ではありませんが、GNU/Linuxまたは他のフリーなオペレーティングシステムには、通常1つはインストールされています。 Aspell in The Aspell Manualを参照してください。

インストールされたスペルチェッカーが1つだけなら、ここで説明するコマンドのいずれかを最初に呼び出したときに、Emacsはそれを見つけるでしょう。インストールされているのが複数なら、変数ispell-program-nameをカスタマイズしてどれを使用するか制御できます。

M-$

ポイントがある単語スペルの、チェックと訂正をします(ispell-word)。リージョンがアクティブのときは、リージョンに含まれるすべての単語にたいして行います。

C-u M-$

前回中断したスペル入力処理を継続します(ispell-continue)。

M-x ispell

バッファーにある単語スペルの、チェックと訂正をします。リージョンがアクティブのときは、リージョンに含まれるすべての単語にたいして行います。

M-x ispell-buffer

バッファーにある単語スペルの、チェックと訂正をします。

M-x ispell-region

リージョンにある単語スペルの、チェックと訂正をします。

M-x ispell-message

メールメッセージのドラフト(引用部分を除く)にたいして、単語スペルのチェックと訂正をします。

M-x ispell-comments-and-strings

バッファーやリージョンにあるコメントと文字列のスペルチェックと訂正をします。

M-x ispell-comment-or-string-at-point

ポイント位置のコメントと文字列をチェックします。

M-x ispell-change-dictionary RET dict RET

スペルチェッカーのプロセスを再起動して、dictを辞書として使用させます。

M-x ispell-kill-ispell

スペルチェッカーのサブプロセスをkillします。

M-TAB
ESC TAB
C-M-i

ポイントの前にある単語を、スペル辞書やその他の補完ソースをもとに補完します(completion-at-point)。

M-x flyspell-mode

スペルミスした単語をハイライトする、Flyspellモードを有効にします。

M-x flyspell-prog-mode

コメントと文字列にたいして、Flyspellモードを有効にします。

ポイントの前または周囲にある単語スペルをチェックしたり訂正するには、M-$ (ispell-word)をタイプします。リージョンがアクティブのときは、リージョン内のすべての単語スペルをチェックします。マークとリージョンを参照してください(Transient Markモードがオフのとき、M-$はリージョンを無視して、常にポイントの前または周囲の単語にたいして動作します。Transient Markモードを無効にするを参照)。C-u M-$のようにプレフィックス引数とともに呼び出した場合には、ispell-continueを呼び出してもしXC-gで前回中断されたスペル入力があれば、その処理を継続します。

同様に、コマンドM-x ispellはリージョンがアクティブのときはリージョン、それ以外のときはバッファー全体にたいしてスペルチェックを行います。コマンドM-x ispell-bufferおよびM-x ispell-regionは、スペルチェックをバッファー全体にたいして行うのか、リージョンにたいして行うかを明示します。このコマンドはバッファー全体をチェックしますが、インデントされているテキストと、以前のメッセージの引用と思われるテキストはチェックしません。メールの送信を参照してください。ソースコードを扱う際には、コメントや文字列リテラルだけをチェックするためにM-x ispell-comments-and-stringsM-x ispell-comment-or-string-at-pointを使用できます。

これらのコマンドは、正しくないと思われる単語に出会うと、それをどうするかを尋ねます。通常は番号が振られた近い単語(near-misses: 正しくないと思われる単語に似た単語)のリストを表示します。これにたいして1文字をタイプして応答しなければなりません。以下は有効な応答文字です。

数字

今回だけは近い単語の一覧で単語を置き換えます。近い単語には番号が振られており、選択するにはその番号をタイプします。

SPC

その単語を間違いと判断することは変更しませんが、その単語をここでは変更せずスキップします。

r new RET

今回は単語をnewで置き換えます(置換文字列にスペルエラーがないか再スキャンされます)。

R new RET

単語をnewで置き換え、query-replaceを実行します。これによりバッファーの他の箇所の間違えを置換できます(置換にスペルエラーがないか再スキャンされます)。

a

正しくないと思われる単語を正しいものとして受け入れますが、それは今回の編集セッションに限られます。

A

正しくないと思われる単語を正しいものとして受け入れますが、それは今回の編集セッションとそのバッファーに限られます。

i

この単語をプライベートな辞書ファイルに挿入するので、今後(将来のセッションを含めて)はその単語を正しいと認識します。

m

iと同様ですが、辞書の補完情報も指定できます。

u

この単語の小文字バージョンを、プライベートな辞書ファイルに挿入します。

l word RET

wordにマッチする単語を辞書から探します。これらの単語は近い単語の新しいリストになるので、置換で数字をタイプして選択できるようになります。wordにはワイルドカードとして‘*’を使うことができます。

C-g
X

対話的なスペルチェックを中断します(ポイントはチェックされた単語の位置に残されます)。C-u M-$でチェックを再開できます。

x

対話的なスペルチェックを終了します(ポイントはチェックを開始したときの位置に戻ります)。

q

対話的なスペルチェックを終了して、スペルチェッカーのサブプロセスをkillします。

C-r

再帰編集にエンターします(再帰編集レベルを参照)。C-M-cで再帰編集からexitすると、インタラクティブなスペルチェックが再開されます。これによりスペルチェックを中断せずにバッファーのテキストを参照することができます。その再帰編集ではバッファーの編集、特にミススペルした単語の編集は再帰編集のexit時にアンドゥされるので行わないでください。ミススペルした単語の編集にはrR、バッファーの編集にはXを使用して、その後はC-u M-$でスペルチェックを再開できます。

C-z

Emacs、あるいはアイコン化されている選択されたフレームをサスペンドします。

?

オプションの一覧を表示します。

ポイント位置の単語の補完には、コマンドM-TAB (completion-at-point)を使用します。単語の先頭を入力してからM-TABをタイプすれば、補完リストから選択できます(ウィンドウマネージャーがM-TABを横取りする場合にはESC TABC-M-iとタイプすればよい)。

1度プロセスが開始されれば、スペルチェッカーのサブプロセスは待機状態で実行を続けるので、一連のスペルチェックコマンドは素早く完了します。プロセスを終了させたいときはM-x ispell-kill-ispellを使います。スペルの訂正を行うとき以外プロセスがCPU時間を使うことはないので、これは通常必要ありません。

スペルチェッカーは、スペルを2つの辞書から探します。それは標準辞書と個人用辞書です。標準辞書は変数ispell-local-dictionaryで指定されます。これがnilのときは、変数ispell-dictionaryで指定されます。両方がnilのとき、スペルプログラムは既定の辞書を使います。コマンドM-x ispell-change-dictionaryは、バッファーにたいする標準辞書をセットしてからサブプロセスを再起動することにより、これにより異なる標準辞書を使うことができます。個人用の辞書は、変数ispell-personal-dictionaryで指定します。これがnilのとき、スペルプログラムは個人辞書を、各スペルチェッカーが指定する既定の場所から探します。

spell-checkerが使用する辞書は、通常は特定の言語向けです。デフォルトの言語はシステムの環境とlocaleから決定されます。違う言語のテキストのスペルチェックを行いたい場合には、標準の辞書と個人用辞書を変更できるようにしたい筈です。これはispell-change-dictionaryコマンドで行うことができます。

Hunspellは複数の辞書を並行に使用したスペルチェックをサポートする点で特別です。この機能を使用するには、特定の辞書を組み合わせて使用する前に、M-x ispell-hunspell-add-multi-dicを呼び出してください。このコマンドは組み合わせる辞書の入力を求めます。‘en_US,de_DE,ru_RU’のように言語固有の辞書の名前を、カンマ区切りで入力してください。そうすれば毎回辞書を変更しなくても、これらの言語が混ざったテキストのスペルチェックができます (補足: 同じスクリプトが複数の言語で使用されていると、ある言語では間違っているスペルが他の言語辞書では有効な場合があるかもしれない; そのような場合には間違ったスペルが見逃されるかもしれない)。

単語の補完には別の辞書が使われます。変数ispell-complete-word-dictは、この辞書のファイル名を指定します。補完辞書は、単語の変化形を検知するためにスペルチェックが使用する、単語にたいするroot語(接辞を含まない語)とaffix語(接辞語)に関する情報を使用できないので、、別の辞書でなければなりません。補完辞書はもたないが、スペルチェック辞書はあもつ言語もいくつかあります。

Flyspellモードは、タイプしたテキストのスペルをタイプ時に自動的にチェックするマイナーモードです。認識できない単語を見つけると、その単語をハイライトします。M-x flyspell-modeとタイプすると、カレントバッファーのFlyspellモードを切り替えます。すべてのTextバッファーでFlyspellモードを有効にするには、text-mode-hookに、flyspell-modeを追加します。フックを参照してください。Flyspellモードは、ユーザーの移動にしたがって各単語をチェックする必要があるので、カーソル移動やスクロールコマンドにより速度低下するかもしれないことに注意してください。タイプしていないテキストや移動と関係ないテキストの自動チェックも行いません。それを行うためには、flyspell-regionflyspell-bufferを使用してください。

Flyspellモードは通常だとあなたがタイプあるいは変更した単語だけではなく、変更せずに移動した単語でも間違っていればハイライトします。しかし変数flyspell-check-changesを非nilにカスタマイズすれば、何らかの方法によってタイプあるいは編集された単語だけをFlyspellはチェックします。

Flyspellモードが間違ったスペルの単語をハイライトしているとき、それをmouse-2 (flyspell-correct-word)でクリックして、可能な定性とアクションを表示するメニューを表示できます。このメニューをかわりにmouse-3にしたければ、context-menu-modeを有効にしてください。加えてC-.、またはESC TAB (flyspell-auto-correct-word)はポイント位置の単語にたいする可能な訂正を提案し、C-c $ (flyspell-correct-word-before-point)は可能な訂正のメニューをポップアップします。もちろん、間違ったスペルの単語を、常にお好みの方法で手修正できます。

Flyspell Progモードは通常のFlyspellモードと同じように機能しますが、コメントと文字列に含まれた単語だけをチェックします。この機能はプログラムを編集する場合に便利です。M-x flyspell-prog-modeをタイプして、現在のバッファーにたいするこのモードの有効と無効を切り替えます。すべてのプログラミングに関連したモードでこのモードを有効にするには、prog-mode-hookflyspell-prog-modeを追加します(フックを参照してください)。


This page has generated for branch:work/emacs-30_69b16e5c63840479270d32f58daea923fe725b90, commit:5e3f74b56ff47b5bcef2526c70f53f749bbd45f6 to check Japanese translation.