次へ: ファイルモードの選択, 前へ: メジャーモード,
上へ: メジャーモードとマイナーモード
[目次][索引]
25.2 マイナーモード
¶
マイナーモードとは、Emacsの動作を特定の明確な方法で変更する、オプションの編集モードのことです。メジャーモードとは異なり、任意の数のマイナーモードをいつでも有効にできます。一部のマイナーモードはバッファローカルであり、特定のバッファでは有効(オン)に、他のバッファでは無効(オフ)に設定できます。その他のマイナーモードはグローバルであり、有効な間は、Emacsセッション中のすべてのバッファにおけるあらゆる操作に影響します。ほとんどのマイナーモードはデフォルトで無効になっていますが、一部はデフォルトで有効になっています。
ほとんどのバッファローカルなマイナーモードは、有効になっている場合、メジャーモードのインジケーターの直後にモードラインに表示されます。例えば、モードラインの
‘Fill’ は、Auto Fillモードが有効であることを意味します。モードラインを参照してください。
メジャーモードと同様に、各マイナーモードにはモードコマンドが関連付けられており、その名称はモード名に‘-mode’を続けた形式になります。例えば、Auto Fillモードのモードコマンドはauto-fill-modeです。ただし、単にモードを有効にするメジャーモードコマンドとは異なり、マイナーモードのモードコマンドは、そのモードを有効にすることも無効にすることもできます:
- プレフィックス引数を指定せずに mode コマンドを直接呼び出した場合(M-x
経由、またはキーにバインドしてそのキーを入力した場合。キーバインドのカスタマイズを参照)、マイナーモードが切り替わります。マイナーモードがオフだった場合はオンになり、オンだった場合はオフになります。
- prefix引数を指定してmodeコマンドを呼び出した場合、その引数が0または負であればマイナーモードは無条件にオフになり、そうでなければ無条件にオンになります。
- Lisp経由でmodeコマンドを呼び出した場合、引数が省略されているか、あるいは
nilであれば、マイナーモードが無条件に有効になります。これにより、メジャーモードのモードフックからマイナーモードを簡単に有効にできます(メジャーモードを参照)。nil以外の引数は、前述の通り、対話型プレフィックス引数と同様に扱われます。
ほとんどのマイナーモードには、モードコマンドと同じ名前のモード変数も用意されています。その値は、モードが有効な場合はnon-nil、無効な場合はnilとなります。一般的に、Lispでモード変数の値を直接変更してモードを有効・無効にしようとすべきではなく、代わりにモードコマンドを実行してください。ただし、Customizeインターフェース(Easy Customization
Interfaceを参照)を通じてモード変数を設定すれば、Customizeが自動的にモードコマンドを実行するため、常に正しくモードが有効または無効になります。
以下に、バッファローカルなマイナーモードをいくつか挙げます。
- 略語モードでは、あらかじめ定義された略語定義に基づいてテキストが自動的に展開されます。Abbrevsを参照してください。
- 自動入力モードでは、行が長くなりすぎるのを防ぐため、入力に合わせて改行が挿入されます。テキストの挿入を参照してください。
- 自動保存モードは、クラッシュ時に失われる可能性のある作業量を減らすため、バッファの内容を定期的に保存します。自動保存:災害への対策を参照してください。
- Electric Quoteモードは、引用符を自動的に変換します。例えば、`like
this'と入力されたテキストを
‘like
this’に変換します。どの種類のテキストに対してこの機能を適用するかを制御できるほか、個別のバッファでこの機能を完全に無効にすることも可能です。引用符を参照してください。
- リッチモードでは、書式付きテキストの編集と保存が可能です。リッチテキストを参照してください。
- Flyspellモードでは、スペルミスのある単語が自動的にハイライトされます。スペルの確認と修正を参照してください。
- Font-Lockモードは、プログラム内に含まれる特定のテキスト単位を自動的にハイライトします。デフォルトではグローバルに有効になっていますが、個別のバッファで無効にすることも可能です。テキストフェイスを参照してください。
- Display Line Numbers モードは
display-line-numbers
をラップした便利な機能で、display-line-numbers-type
の値を用いてこれを設定します。表示のカスタマイズ
を参照してください。
- アウトライン・マイナーモードは、「アウトラインモード」と呼ばれるメジャーモードと同様の機能を提供します。アウトラインモードを参照してください。
-
上書きモードでは、通常の印刷文字が既存のテキストを右に押し出すのではなく、テキストを置き換えます。例えば、ポイントが ‘FOOBAR’ 内の ‘B’ の直前にある場合、上書きモードで G
を入力すると、通常通り ‘FOOGBAR’
になるのではなく、‘FOOGAR’
に変更されます。上書きモードでは、コマンド C-q
は、たとえ数字であっても次の文字を挿入します。これにより、既存の文字を置き換えるのではなく、文字を挿入することができます。モードコマンド
overwrite-mode は Insert
キーに割り当てられています。
-
バイナリ上書きモードは、バイナリファイルを編集するための上書きモードの一種です。改行やタブを他の文字と同様に扱うため、他の文字を上書きしたり、他の文字によって上書きされたりします。バイナリ上書きモードでは、C-q に続く数字は、通常通り8進数の文字コードを指定します。
- ビジュアルラインモードではワードラップが行われ、長い行は単語の境界で折り返されます。 ビジュアルラインモードを参照してください。
そして、便利なグローバルマイナーモードをいくつかご紹介します:
- 列番号モードでは、モードラインに現在の列番号を表示できます。 モードラインを参照してください。
- 「選択範囲を削除」モードでは、リージョンがアクティブな場合、テキストの挿入時にまずそのリージョン内のテキストが削除されます。リージョンの操作を参照してください。
- Icompleteモードでは、ミニバッファ内で補完が有効なときに、利用可能な補完候補が表示されます。高速なミニバッファ選択を参照してください。
- ライン番号モードを有効にすると、モードラインに現在の行番号が表示されます。デフォルトで有効になっています。モードラインを参照してください。
- メニューバーモードでは、各フレームにメニューバーが表示されます。デフォルトで有効になっています。メニューバーを参照してください。
- スクロールバーモードを有効にすると、各ウィンドウにスクロールバーが表示されます。デフォルトで有効になっていますが、スクロールバーが表示されるのはグラフィカル端末のみです。スクロールバーを参照してください。
- ツールバーモードでは、各フレームにツールバーが表示されます。デフォルトで有効になっていますが、ツールバーはグラフィカル端末でのみ表示されます。ツールバーを参照してください。
- ウィンドウツールバーモードでは、ウィンドウにツールバーが表示されます。ウィンドウツールバーを参照してください。
- タブバーモードでは、各フレームにタブバーが表示されます。タブバーを参照してください。
- タブラインモードでは、各ウィンドウにタブラインが表示されます。ウィンドウのタブラインを参照してください。
- トランジェント・マークモードではリージョンがハイライトされ、マークが有効な状態で多くのEmacsコマンドがリージョンに対して動作するようになります。このモードはデフォルトで有効になっています。マークとリージョンを参照してください。