GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/emacs/Display-Custom.html ・ emacs-doc.conao3.com

16.24 表示のカスタマイズ

本節では、Emacs画面の外観に関するさまざまな要素を制御する変数について説明します。初心者の方は読み飛ばして構いません。

バッファの全行に行番号を表示させたい場合は、バッファローカル変数 display-line-numbers をカスタマイズしてください。デフォルトでは nil となっています。この変数には、行番号表示のさまざまなモードに対応させるため、複数の異なる値を設定できます:

t

バッファテキストを表示する継続行以外の各画面行の前に、(絶対)行番号を表示します。当該行が継続行である場合、または画面行全体に表示文字列やオーバーレイ文字列が表示される場合は、その行に行番号は付与されません。

relative

バッファテキストを表示する非継続行の前に、相対行番号を表示します。行番号はポイントが表示されている行を基準とするため、行が現在の行から離れるにつれて、番号は上下に変動します。

visual

この値を指定すると、Emacsは行数を視覚的にカウントします。つまり、ディスプレイに実際に表示されている行のみがカウントされ(テキストの非表示部分にある行は無視されます)、複数行にわたって表示される行は、その回数分だけ番号が振られます。表示される番号は、前述の relative 値と同様に相対的なものです。これは、アウトラインモード(アウトラインモード を参照)のようにテキストを折りたたむモードや、正確な画面行数単位で移動する必要がある場合に便利です。

その他

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-absolute を nil の値にカスタマイズすると、現在の行に表示される番号は 0 になります。これは、現在の行番号を気にせず、大きなバッファでテキスト用の水平方向のスペースをより広く確保したい場合に便利です。

ナローイングされたバッファ(Narrowingを参照)では、通常、ナローイングの開始位置から行番号が振られます。ただし、変数 display-line-numbers-widen を nil 以外の値にカスタマイズすると、行番号はナローイングを無視し、バッファの先頭文字から振られるようになります。

display-line-numbers-offset の値が 0 以外の場合、その値が各絶対行番号に加算され、あたかも display-line-numbers-widen が non-nil であるかのように、バッファの先頭から行番号がカウントされます。この値が 0 に設定されている場合や、行番号が絶対ではない場合には、効果はありません。

選択的表示モード(選択的表示を参照)や、多くの行を非表示にするその他のモード(アウトラインモードやOrgモードなど)では、行番号用に確保されたスペースの計算が時折誤るのを防ぐため、変数 display-line-numbers-width-start と display-line-numbers-grow-only をカスタマイズしたり、display-line-numbers-width を十分に大きな値に設定したりすることがあります。

行番号は専用のフォント line-number で表示されます。現在の行番号は別のフォント line-number-current-line で表示されるため、現在の行番号を際立たせることができ、ポイントが表示されている行を特定するのに役立ちます。さらに、追加のフォント line-number-major-tick と line-number-minor-tick を使用して、特定の数値の倍数にあたる行の行番号を強調表示できます。これらの数値を設定するには、それぞれ display-line-numbers-major-tick と display-line-numbers-minor-tick をカスタマイズしてください。

変数 line-spacing は、行間の垂直方向の間隔を制御します。整数(ピクセル指定)または浮動小数点数(デフォルトのフレームフォント高さに対する相対的な間隔指定)で設定できます。また、(top . bottom) のように、整数や浮動小数点数のコンスセルをこの変数に設定することも可能です。コンスセルを設定した場合、間隔は行の上下に分散されるため、行の高さ内でテキストを垂直方向に中央揃えにすることができます。The Emacs Lisp Reference Manual の Line Height も参照してください。

変数 visible-bell が nil 以外の場合、Emacs は通常であればベル音を鳴らすところを、画面全体を点滅させようとします。この変数は、ターミナルに画面を点滅させる機能がない場合には効果がありません。

変数 echo-keystrokes は複数文字キーのエコー動作を制御します。その値は、エコーを開始させるために必要な待機秒数、または全くエコーさせないことを意味する 0 です。値は、エコーすべき内容がある場合に適用されます。エコーエリア を参照してください。

変数 echo-keystrokes-help が nil 以外(デフォルト)の場合、echo-keystrokes に従って表示されるマルチ文字キーシーケンスのエコーには、既に入力したプレフィックスに対応するコマンド一覧を表示するために describe-prefix-bindings (その他のヘルプコマンド を参照)を呼び出すキーに関する短いヘルプテキストが含まれます。関連するヘルプ機能については、which-key を参照してください。

グラフィカルディスプレイでは、Emacsがビジー状態のとき、マウスポインタが砂時計として表示されます。この機能を無効にするには、変数 display-hourglass に nil を設定してください。変数 hourglass-delay は、砂時計が表示されるまでのビジー時間の秒数を決定します。デフォルト値は 1 です。

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

グラフィカルディスプレイでは、変数 underline-minimum-offset が、下線付きテキストのベースラインと下線の間の最小距離(ピクセル単位)を決定します。デフォルト値は 1 で、これを大きくすると、特定のフォントにおいて下線付きテキストの可読性が向上する場合があります。(ただし、Emacs が現在の行領域より下に下線を描画することはありません。)変数 x-underline-at-descent-line は、下線付きテキストの描画方法を決定します。デフォルトは nil で、これはフォントのベースラインレベルで描画することを意味します。これを t に変更すると、Emacs はフォントのディセントラインと同じ高さに下線を描画します。(下線付きテキストにデフォルト以外の行間隔が指定されている場合は、The Emacs Lisp Reference Manual の Line Height を参照してください。その場合、Emacs は追加の間隔の下に下線を描画します。)

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

一部のテキスト端末では、太字と反転表示が組み合わさると、文字が読みづらくなります。このような場合に太字の効果を抑制するには、tty-suppress-bold-inverse-default-colors 関数を nil 以外の引数で呼び出してください。

生バイトはデフォルトで8進数形式で表示されます。例えば、10進数値が128のバイトは \200 と表示されます。表示形式を16進数形式の \x80 に変更するには、変数 display-raw-bytes-as-hex に t を設定します。Emacsセッションが動作しているターミナルからテキストをコピーする場合や、ターミナルの escape-glyph フェイスがデフォルトのフェイスに見える場合など、生バイトを解釈する際には注意が必要です。例えば、デフォルトではEmacsは、10進数値128のバイトを表示するのと同じ文字を用いて、‘\’、‘2’、‘0’、‘0’ の4文字を表示します。16進数表示ではこの問題がさらに悪化することがあり、生バイト128に続いて文字 ‘7’ が表示されると \x807 として表示され、Emacs Lispはこれを単一の文字 U+0807 SAMARITAN LETTER IT として読み取ります。8進数のエスケープシーケンスには最大3桁の数字しか含まれないため、対応する8進数表示 \2007 ではこのような混乱は起こりません。