Previous: Moving by Parens, Up: Parentheses [Contents][Index]
Emacsにはカッコのマッチング(parenthesis matching)機能がいくつかあります。これにより、どのカッコ(または他の区切り)がどのようにマッチするか簡単に見ることができます。
終了文字となる自己挿入文字をタイプすると、Emacsはそれがスクリーン上にあれば、マッチする開始区切りの位置を簡単に示します。スクリーン上にない場合、Emacsは開始区切りの近くにあるテキストをエコーエリアに表示します。どちらの方法でも、どのグループを終了したのか見分けることができます。開始区切りと終了区切りがマッチしない — ‘[x)’のような場合、エコーエリアに警告メッセージが表示されます。
3つの変数が、マッチするカッコの表示を制御します:
blink-matching-paren
は、この機能をオンまたはオフに切り替えます。nil
は無効にしますが、デフォルトのt
は有効にします。jump
にセットすると、マッチする開始区切りに数瞬カーソルを移動して指示します。jump-offscreen
にセットすると、開始区切りが画面上にない場合でもカーソルをジャンプさせます。
blink-matching-delay
は、マッチする開始区切りを何秒表示するかを指定します。これには整数または浮動小数点数を指定します。デフォルトは1です。
blink-matching-paren-distance
には、マッチする開始区切りを後方に何文字検索するかを指定します。この文字数内にマッチが見つからない場合、Emacsは検索を中止して、何も表示しません。デフォルトは102400です。
グローバルなマイナーモードのShow Parenモードは、より強力な自動的なマッチングの類を提供します。これは開始区切りの前、または終了区切りの後ろにポイントを移動すると、開始区切りと終了区切り、間にあるテキスト(オプション)をハイライトします。Show Parenモードに切り替えるには、M-x show-paren-modeとタイプします。これをカスタマイズするには、M-x customize-group RET paren-showingとタイプします。このモードの処理を制御するカスタマイズ可能なオプションには、以下が含まれます:
show-paren-highlight-openparen
は、ポイントが開きカッコの直前にあるとき(つまり、その位置にカーソルがにあるとき)、そのカッコをハイライトするかどうかを制御します。デフォルトは非nil
(ハイライトする)です。
show-paren-style
は、2つのカッコだけをハイライトするか、それともカッコの間のスペースもハイライトされるかを制御します。有効なオプションは、parenthesis
(マッチするカッコをハイライト)、expression
(カッコで括られた式全体をハイライト)、mixed
(カッコが表示されているときはマッチするカッコ、カッコが表示されていないときは式をハイライト)です。
show-paren-when-point-inside-paren
が非nil
の場合は、ポイントがカッコの内側にあるときもハイライトされます。
show-paren-when-point-in-periphery
が非nil
の場合は、行の先頭が空白文字で開始されていて、ポイントがその空白文字範囲の中にあり、その行の非空白文字の最初または最後がカッコの場合は、そのカッコもハイライトします。同様に、行の末尾が空白文字で終端されていて、ポイントがその空白文字範囲の中にあり、その行の非空白文字の最後がカッコの場合は、そのカッコもハイライトします。
グローバルなマイナーモードのElectric Pairモードは、マッチするカッコ(parentheses)、大カッコ(braces)、角カッコ(brackets)、...などの 区切りを簡単に挿入する方法を提供します。開始区切りを挿入すると、マッチする終了区切りが自動的に挿入され、2つの区切りの間にポイントが置かれます。反対に終了区切りを既存の区切りの先に挿入した場合、何の挿入もされず、その位置は単にスキップされます。リージョンがアクティブ(Markを参照)の場合、区切りの挿入はそのリージョンを操作します。リージョン内の文字はマッチする区切りのペアー内に括られ、ポイントはタイプした区切りの後に置かれます。
以下の変数は、Electric Pairモードの追加機能を制御するのに使用できます:
electric-pair-preserve-balance
—
非nil
の場合、デフォルトのペアリングロジックは、開始区切りと終了区切りの数のバランスになります。
electric-pair-delete-adjacent-pairs
—
非nil
の場合、隣接する区切りの間でのバックスペースにより、終了区切りも自動的に削除します。
electric-pair-open-newline-between-pairs
—
非nil
の場合、2つの隣接するペアの間での改行の挿入は、ポイントの後ろに自動的に追加の改行をオープンします。
electric-pair-skip-whitespace
—
非nil
の場合、終了区切りのスキップを決定する前に、マイナーモードが空白文字を前方にスキップするようにします。
Electric Pairモードに切り替えるには、M-x electric-pair-modeとタイプします。1つのバッファーにたいしてこのモードを切り替えるには、M-x electric-pair-local-modeを使用してください。