テキストウィンドウの最後の行はモード行(mode line)で、 そのウィンドウで何が進行しているか表示します。 テキストウィンドウが1つしかない場合、 モード行はエコー領域のすぐ上に表示されます。 フレーム上では最後から2番目の行になります。 端末に反転表示機能があれば、モード行は反転表示されます。 モード行の表示内容は、ダッシュで始まりダッシュで終ります。
通常、モード行はつぎのように表示されます。
-cs:ch buf (major minor)--line--pos------
これから、ウィンドウに表示中のバッファに関する情報を得られます。 バッファの名前、どのメジャーモードやマイナモードを使っているか、 バッファのテキストが変更されたかどうか、 バッファ全体のどのあたりを現在表示しているかです。
chは、バッファのテキストが編集されている (つまりバッファが『変更』されている)場合には星印2個‘**’になり、 バッファが編集されていない場合には‘--’になります。 読み出し専用のバッファの場合には、 バッファが編集されている場合には‘%*’になり、 バッファが編集されていない場合には‘%%’となります。
bufは、ウィンドウに表示されているバッファの名前です。 ほとんどの場合、編集中のファイル名と同じです。 See Buffers。
(カーソルがある)選択されたウィンドウに表示されたバッファは、 Emacsの選択されたバッファでもあり、編集はこのバッファで行われます。 コマンドが『バッファ』に何かを行うといったとき、 現在選択されているバッファを指しています。
lineは、‘L’のあとに現在ポイントがある行の番号が続いたものです。 これは、行番号(line-number)モードがオンである (通常はオン)場合に表示されます。 なお、桁番号(column-number)モードをオンにすると、 現在の桁番号も表示できます (多少時間がかかるので、このモードはデフォルトではオフ)。 See Optional Mode Line。
posは、ウィンドウの最上部より上や最下部より下に さらにテキストがあるかどうかを示します。 バッファが小さくて、すべてがウィンドウに収まっている場合には、 posは‘All’となります。 そうでない場合、バッファの先頭が表示されていれば‘Top’、 バッファの末尾が表示されていれば‘Bot’、 あるいは、‘nn%’となります。 ここで、nnはウィンドウの最上部より上にあるバッファの 割合を百分率で示します。
majorは、そのバッファのメジャーモード(major mode)の名前です。 各バッファはつねに必ず1つのメジャーモードになっています。 使用可能なメジャーモードには、 基本(fundamental)モード(もっとも特殊化されていないモード)、 テキスト(text)モード、Lisp モード、Cモード、 texinfoモード、その他にも数多くあります。 各モードの相違や選択方法についての詳細は、See Major Modes。
メジャーモードには、 メジャーモード名のあとに付加的な情報を表示するものもあります。 たとえば、rmailバッファでは、現在のメッセージ番号とメッセージ総数を表示します。 コンパイルバッファやシェルバッファでは、サブプロセスの状態を表示します。
minorは、ウィンドウの選択されたバッファにおいて、 その時点でオンになっているマイナモード (minor mode)の一覧の一部を示します。 たとえば、‘Fill’は、 自動詰め込み(auto-fill)モードがオンであることを意味します。 ‘Abbrev’は、略語(abbrev)モードがオンであることを意味します。 ‘Ovwrt’は 、上書き(overwrite)モードがオンであることを意味します。 詳しくは、See Minor Modes。 ‘Narrow’は、表示中のバッファが、 そのテキストの一部のみを編集するように制限されていることを示します。 これは、実際にはマイナモードではありませんが、そのようなものです。 See Narrowing。 ‘Def’は、キーボードマクロを定義中であることを示します。 See Keyboard Macros。
さらに、Emacsが、現在、再帰編集レベルにあるときには、 モードを囲んでいる括弧の周りに角括弧(‘[...]’)が現れます。 再帰編集レベルの中で別の再帰編集レベルに入っていると、 角括弧は2重になるというふうになります。 再帰編集レベルは、特定のバッファにだけ関係するものではなく、 Emacs全体に影響するので、角括弧はすべてのウィンドウのモード行に表示される、 あるいは、まったく表示されないのどちらかです。 See Recursive Edit。
ウィンドウを表示できない端末では、一度には、 単一のEmacsフレームしか表示できません (see Frames)。 そのような端末では、モード行のchのあとに、 選択しているフレームの名前が表示されます。 初期フレームの名前は、‘F1’です。
csは、編集中のファイルで使用しているコーディングシステムを表します。 ダッシュ(‘-’)はデフォルトの状態、つまり、 ファイルの内容に応じて行末変換は行うが、 コード変換は行わないことを示します。 ‘=’の場合、コード変換をまったく行わないことを意味します。 単純ではないコード変換をさまざま文字で示します。 たとえば、‘1’は、ISO Latin-1を表します。 詳しくは、See Coding Systems。 入力方式を使っている場合には、 csの先頭に‘i>’の形式の文字列が付加されます。 ここで、iは入力方式を表します。 (‘>’のかわりに、‘+’や‘@’を表示する入力方式もある。) See Input Methods。
(ウィンドウシステムではなくて)文字端末を使っている場合、 csは3文字になり、それぞれ、 キーボード入力のコーディングシステム、 画面出力のコーディングシステム、 編集中のファイルのコーディングシステムです。
マルチバイト文字が使用不可の場合、csはまったく表示されません。 See Enabling Multibyte。
csのあとのコロンは、特定の場面では別の文字列に変わることがあります。 Emacsは、バッファ内の行区切りとして改行を使います。 ファイルによっては、行区切りとして別の慣習を用いるものもあります。 復帰改行(MS-DOSの慣習)、あるいは、復帰のみ(Macintoshの慣習)です。 バッファのファイルが復帰改行を使っている場合には、 オペレーティングシステムに依存して、 コロンはバックスラッシュ(‘\’)か‘(DOS)’に変わります。 ファイルが復帰のみを使っている場合には、 コロンはスラッシュ(‘/’)か‘(Mac)’に変わります。 システムによっては、行区切りとして改行を使っているファイルであっても、 Emacsはコロンのかわりに‘(Unix)’を表示します。
各種行末形式のモード行への表示は、
各変数、eol-mnemonic-unix
、eol-mnemonic-dos
、
eol-mnemonic-mac
、eol-mnemonic-undecided
に
ユーザーにとって適切な任意の文字列を
設定することでカスタマイズできます。
変数の設定方法については、See Variables。
ポイント位置の桁番号、現在時刻、新着メイルの有無などの お手ごろ情報をモード行へ追加する機能については、 See Optional Mode Line。