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


15.20 テキストが表示される方法

ほとんどの文字は、印字文字(printing characters)です。これらの文字がバッファーに存在すると、スクリーンにそのまま表示されます。印字文字にはASCIIの数字、文字、区切り文字、同様に多くの非ASCII文字が含まれます。

ASCII文字セットには、印字されない制御文字(control characters)が含まれます。その中でも特別に表示されるものが2つあります。1つ目は改行文字(UnicodeのコードポイントU+000A)で、新しい行を開始するのに表示されます。2つ目はタブ文字(U+0009)で、次のタブストップ(通常は8文字ごと)までをスペースで表示します。タブを何文字のスペースで表示するかは、バッファーローカルな変数tab-widthで制御され、1から1000の整数で指定しなければなりません。バッファーのタブ文字が表示される方法は、コマンドとしてのTABの定義には関係ないことに注意してください。

他のASCII制御文字としては、U+0020(8進の40、10進の32)より下のコードがあり、それらはカレット(‘^’)と、その後ろに非制御文字バージョンの文字を続けて、escape-glyphフェイスで表示されます。たとえば文字‘control-A’(U+0001)は、‘^A’と表示されます。

コードU+0080(8進の200)からU+009F(8進の237)までのrawバイトは、escape-glyphフェイスにより8進エスケープシーケンス(octal escape sequences)で表示されます。たとえば文字コードU+0098(8進の230)は‘\230’と表示されます。バッファーローカルな変数ctl-arrownilに変更すると、ASCII制御文字もカレットエスケープシーケンスではなく8進エスケープシーケンスで表示されます(rawバイトを16進表示するように要求することも可能。display-raw-bytes-as-hexを参照)。

ASCII文字の中には、ASCIIのスペースやハイフン(マイナス記号)と同じ外観を持つものがあります。そのような文字は、意識せずにバッファーに入力されたとき(たとえばyankなどで)、問題となることがあります。たとえばソースコードコンパイラーは通常、非ASCIIのスペースを、空白文字として扱いません。この問題に対処するため、Emacsはそのような文字を特別な方法(U+00A0 NO-BREAK SPACEおよび他のUnicode horizontal space class由来の文字はnobreak-spaceフェイス、U+00AD SOFT HYPHEN、U+2010 HYPHEN、およびU+2011 NON-BREAKING HYPHENnobreak-hyphenフェイス)で表示します。これを無効にするには、変数nobreak-char-displaynilに変更します。この変数に非nilかつ非tの値を与えると、Emacsはハイライトされたバックスラッシュの後に、スペースまたはハイフンを表示します。

特定の文字コードの表示のカスタマイズは、ディスプレイテーブル(display table)によって行われます。Display Tables in The Emacs Lisp Reference Manualを参照してください。

グラフィカルなディスプレイでは、Emacsが利用可能なフォントにグリフがない文字がいくつかあります。これらのグリフがない文字(glyphless characters)は、通常16進文字を含むボックスで表示されます。テキスト端末では、端末エンコーディング(端末入出力にたいするコーディングシステムを参照してください)で表示できない文字は、通常クエスチョン記号で表示されます。表示方法は、変数glyphless-char-display-controlで制御できます。これらの文字の表示がより目立つように、glyphless-charフェイスをカスタマイズすることもできます。詳細は、Glyphless Character Display in The Emacs Lisp Reference Manualを参照してください。

マイナーモードglyphless-display-modeを使えば、カレントバッファーにおけるグリフなし文字の表示を切り替えることができます。グリフのない文字は、中にその文字の名前の頭文字が入ったボックスとして表示されます。

Emacsはカレントのディスプレイでcurved quotes()が表示可能か判断を試みます。デフォルトでは、表示可能ならEmacsはメッセージやヘルプテキスト内のASCIIクォート((‘`’と‘'’))をcurved quotesに変換します。ユーザーオプションtext-quoting-styleをカスタマイズすることにより、この変換を有効または無効にできます(Keys in Documentation in The Emacs Lisp Reference Manualを参照)。

curved quotes()をASCII文字と同様な外観で見ることができる場合、それらはhomoglyphフェイスで表示されます。表示できないことが既知のcurved quotesは、それらのASCIIによる代替である‘`’、‘'’、‘"’がhomoglyphで表示されます。