Previous: , Up: ディスプレイの制御   [Contents][Index]


15.24 ディスプレイのカスタマイズ

このセクションでは、Emacsスクリーンの外観を制御するさまざまな変数を説明します。初心者はスキップして構いません。

Emacsにバッファー内の各行にたいして行番号を表示させたい場合は、バッファーローカルな変数display-line-numbers(デフォルトはnil)をカスタマイズします。この変数は行番号表示のさまざまなモードをサポートするために、いくつかの異なる値をもつことができます。

t

バッファーテキストを表示する継続行ではないスクリーン各行の前に、、(絶対)行番号を表示します。その行が継続行の場合、またはスクリーン行全体がディスプレイ文字列(display string)、またはオーバーレイ文字列(overlay string)の場合、その行に番号は振られません。

relative

バッファーテキストを表示する非継続行の前に、相対行番号(relative line number)を表示します。行番号はポイントを表示する行にたいして相対的なので、カレント行から遠ざかるにしたがって、行番号は増加または減少します。

visual

この値により、Emacsにビジュアル的に行をカウントさせます。実際にディスプレイに表示されている行だけがカウントされ、ラップして複数行を占めるスクリーン行は、複数回番号付けされます。表示される番号は、上述の値relativeのように相対的です。これはOutlineモード(Outlineモードを参照)のような、テキストをフォールド(fold: 折り畳む)するモードで、正確なスクリーン行の番号により移動するときに役立つでしょう。

その他

その他の非nil値は、tとして扱われます。

コマンドM-x display-line-numbers-modeは、行番号表示を切り替える便利な方法を提供します。このモードのグローバル版は、global-display-line-numbers-modeです。ユーザーオプションdisplay-line-numbers-typeは、上述した行番号表示のサブモードのどのモードをアクティブにするかを制御します。

たとえグローバルにdisplay-line-numbers-modeをオンにしていても、ミニバッファーやツールチップ内に行番号は表示されないことに注意してください。

Emacsが相対行番号を表示しているとき、カレント行(ポイントを表示している行)の前に表示される番号を制御できます。デフォルトでは、Emacsはカレント行にたいしては、他のすべての行が相対行番号であっても、絶対行番号を表示します。変数display-line-numbers-current-absolutenil値にカスタマイズした場合、カレント行に表示される番号は0になります。これはカレント行の番号が重要ではなく、大きなバッファー内のテキストにたいして、より多くの水平方向の空きを残したいとき便利でしょう。

ナロー(ナローイングを参照)されたバッファーでは通常、ナローイングの先頭から番号が開始されます。しかし、変数display-line-numbers-widenを非nil値にカスタマイズした場合、ナローイングは無視されて、そのバッファーの最初の文字から行番号が開始されます。

display-line-numbers-offsetの値が非0なら、各絶対行番号に追加されて、行はあたかもdisplay-line-numbers-widenが非nilであるかのようにバッファー先頭から計数されます。0にセットされた場合、あるいは行番号が絶対でない場合には影響はありません。

Selective Display(選択的表示)モード(選択的な表示を参照)、およびその他の(OutlineモードやOrgモードのような)ディスプレイから多くの行を隠すモードでは、行番号のために予約済みのスペースにたいする法則性のない計算ミスを避けるために、変数display-line-numbers-width-startおよびdisplay-line-numbers-grow-onlyのカスタマイズ、またはdisplay-line-numbers-widthに十分大きな値をセットしたいと思うかもしれません。

行番号は特別なフェイスline-numberで表示されます。カレント行番号は異なるフェイスline-number-current-lineで表示されるので、ポイントを表示する行を見つける助けとなるようにカレント行番号に異なる外観を与えることができます。特定の数値の倍数であるような行番号をハイライトするために、追加フェイスのline-number-major-tickline-number-minor-tickを使用できます。それらの数値にdisplay-line-numbers-major-tickdisplay-line-numbers-minor-tickをカスタマイズしてください。

変数visible-bellが非nilの場合、Emacsは通常ベルサウンドを鳴らす場面で、スクリーン全体を点滅するよう試みます。端末がスクリーンを点滅させる方法を持たないとき、この変数は効果がありません。

変数echo-keystrokesは、複数文字キーのエコー表示を制御します。値にはエコーが開始されるまでの秒数を指定します。0の場合、エコーされません。何かエコーされるべきものがあるときは、この変数の値が効果をもちます。エコーエリアを参照してください。

グラフィカルなディスプレイでは、Emacsはビジーのときにマウスポインターを砂時計で表示します。この機能を無効にするには、変数display-hourglassnilをセットします。変数hourglass-delayは、砂時計が表示されるまでのビジーな時間を、秒数で指定します。デフォルトは1です。

マウスポインターがEmacsのフレーム内にある場合、文字をタイプしてテキストを挿入するまでの間、テキストを隠さないよう、Emacsはマウスポインターを非表示にします(正確に言うとマウスポインターの非表示は、自己挿入的(self-inserting)な文字をタイプしたときです。テキストの挿入を参照してください)。マウスポインターを動かすと、再び表示されます。この機能を無効にするには、変数make-pointer-invisiblenilをセットしてください。

グラフィカルなディスプレイでは、変数underline-minimum-offsetは、アンダーラインされたテキストの、アンダーラインから文字の基底線までの最小距離を、ピクセルで決定します。デフォルトでは値は1です。この変数を増加させると、特定のフォントにおいて、アンダーラインされたテキストの可読性が向上します(しかしEmacsは、カレント行にはアンダーラインを描画しません)。変数x-underline-at-descent-lineは、テキストにアンダーラインを引く方法を決定します。デフォルトはnilで、これはフォントの基底線と同じレベルに描画されることを意味します。これをtに変更すると、Emacsはフォントが同じ大きさになるよう、アンダーラインを少し下に描画します。(アンダーラインされるテキストにたいして非デフォルトの行間が指定された場合、Emacsは追加される行間の下にアンダーラインを描画する。Line Height in The Emacs Lisp Reference Manualを参照されたい。)

変数overline-marginは、テキストの上のオーバーラインの垂直位置を、オーバーライン自身の高さも含めて、ピクセルで指定します。デフォルトは2です。

テキスト端末には、bold(太字)かつ反転されたテキストが読みにくいものがあります。関数tty-suppress-bold-inverse-default-colorsに、引数非nilを与えて呼び出すと、このような場合のbold-faceの効果を抑制します。

デフォルトではrawバイトは、たとえば10進で128という値をもつバイトは\200といったように8進形式で表示されます。これを\x80のように16進形式で表示するよう変更するには、変数display-raw-bytes-as-hextをセットしてください。Emacsセッションを含む端末からテキストをコピーしたり、端末のescape-glyphCareフェイスの外観がデフォルトフェイスに似ている際には、rawバイトの解釈に注意が必要かもしれません。たとえばEmacsが‘\’、‘2’、‘0’、‘0’という4つの文字を表示するのは、値が10進で128であるようなバイトを表示する際と同じ文字です。更に悪いことに16進の表示ではrawバイトの128の後に文字‘7’がある場合には、Emacs LispはこれをU+0807、すなわちSAMARITAN LETTER ITという単一の文字として読み取ってしまいます。8進エスケープでは最大で3桁なので、これに相当する8進の\2007という表示でも混乱は生じません。