Next: , Previous: , Up: Display   [Contents][Index]


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

ほとんどの文字は、印字文字(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進エスケープシーケンスで表示されます。

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

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

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