ウィンドウの最後の行はモードライン(mode line)であり、そのウィンドウで何が進行しているか表示します。ウィンドウが1つしかなければモードラインはエコーエリアのすぐ上に表示されます。フレームでは最後から2番目の行になります。グラフィカルなディスプレイではモードラインは立体的に描画されます。Emacsは選択されたウィンドウのモードラインが目立つように、通常は選択されていないウィンドウとは異なるカラーで描画します。
モードラインに表示されるテキストは以下の書式です:
cs:ch-dfr buf pos line (major minor)
テキスト端末では、上記テキストの後ろからウィンドウの右端まで一連のダッシュ表示されます。これらのダッシュはグラフィカルなディスプレイでは省略されます。
csとその後ろのコロンは、カレントバッファーのキャラクターセットと改行の規則を説明しています。通常Emacsはこれらの設定を自動的に処理しますが、このメッセージが便利なときもあります。
csはバッファーのキャラクターセットを説明します(コーディングシステムを参照)。もしこれがダッシュ(‘-’)の場合、特定のキャラクターセットの処理が行われていないことを意味します(例外として、以降で説明する行末規則があります)。‘=’の場合は、変換が行われていないことを意味し、通常はテキストに非テキストデータが含まれているときに使用されます。他の文字はさまざまなコーディングシステム(coding systems) — たとえば‘1’はISO Latin-1を表します。
テキスト端末ではcsの前に追加で2つの文字が表示され、それによりキーボード入力と端末出力のコーディングシステムが示されます。さらに何らかの入力メソッドを使用している場合は、csの前に入力メソッドを識別する文字列が表示されます(インプットメソッドを参照)。
csの後ろの文字は、通常コロンです。もし違う文字が表示されている場合、それはファイルのエンコーディングに特別な行末規則が使われていることを意味します。通常ファイル内のテキストの各行は改行文字(newline characters)で区切られていますが、他の2つの規則が使われる場合もあります。MS-DOSのファイルを編集する場合にはキャリッジリターン(carriage-return)とラインフィード(linefeed)が使われ、コロンではなくバックスラッシュ(‘\’)または‘(DOS)’(オペレーティングシステムに依存する)が表示されます。古いマッキントッシュシステムのファイルでは、改行文字の代わりにキャリッジリターン(carriage-return)が使われ、そのような場合コロンではなくスラッシュ(‘/’)または‘(Mac)’が表示されます。いくつかのシステムでは行の区切りとして改行文字を使う場合、コロンではなく‘(Unix)’と表示されます。
emacsclient
(emacsclient
の呼び出しを参照)で作成されたフレームでは、次の文字に‘@’が表示されます。これは通常、デーモン(サーバーとしてのEmacsの使用を参照)として実行中のEmacsプロセスのフレームにたいして表示されます。
モードラインの次の要素はchで示される文字列です。2つのダッシュ(‘--’)が表示されている場合、ウィンドウに表示されているバッファーとディスク上のファイルの内容が同じことを意味し、たとえばバッファーが未変更(unmodified)の場合です。バッファーが変更されている場合には2つの星印(‘**’)が表示されます。読み出し専用のバッファーの場合には、バッファーが編集されている場合には‘%*’になり、バッファーが編集されていない場合には‘%%’となります。
通常、chの後ろの文字はダッシュ(‘-’)です。しかしカレントバッファーのdefault-directory
(ファイルの名前を参照)がリモートマシン上(ファイルの名前を参照)にある場合、かわりに‘@’が表示されます。
そのウィンドウがカレントバッファーに専用ならdが表示されます。強い専用なら‘D’、それ以外の形式の専用は‘d’となります。ウィンドウが専用でなければdは表示されません。elispを参照してください。
frは選択されているフレームの名前です(フレームとグラフィカルなディスプレイを参照)。これはテキスト端末でだけ表示されます。フレーム名の初期値は‘F1’です。
bufは、ウィンドウに表示されているバッファーの名前です。通常は編集中のファイル名と同じです。複数バッファーの使用を参照してください。
posはウィンドウの上またはウィンドウの下に、まだテキストがあるかを知らせます。もしバッファーが小さくてウィンドウに全体が表示されている場合、posには‘All’が表示されます。そうではなくバッファーの一部が表示されているときには、バッファーの先頭が表示されている場合には‘Top’、バッファーの最後が表示されている場合には‘Bot’、‘nn%’と表示されている場合、nnはウィンドウの上部がバッファーのどこかをパーセント表示したものです。Size Indication(サイズ表示)モードでは、バッファー全体のサイズを表示できます。
lineは、‘L’のあとに現在ポイントがある行の番号が続いたものです(Column Number(列番号)モードをオンにすると、現在の列番号も表示できます。モードラインのオプションを参照)。
majorは、そのバッファのメジャーモード(major mode)の名前です。メジャーモードはバッファーを編集する際の主要なモードで、Textモード、Lispモード、Cモードなどがあります。メジャーモードを参照してください。メジャーモード名の後ろに追加の情報を表示するメジャーモードもあります。たとえばCompilation buffer(コンパイルバッファー)やShell buffer(Shellバッファー)などは、サブプロセスの状態を表示します。
minorは有効になっているマイナーモード(minor modes)の一覧で、上位のメジャーモードに追加の機能を提供するための編集モードです。マイナーモードを参照してください。
いくつかの機能は、それらが本当はマイナーモードではなくても、有効になっていればマイナーモードの一覧とともに表示されます。‘Narrow’は、表示中のバッファーが、そのテキストの一部のみを編集するように制限されていることを示します(ナローイングを参照)。‘Def’は、キーボードマクロを定義中であることを示します(キーボードマクロを参照)。
さらにEmacsが再帰編集(recursive edit)にあるときには、モードを囲んでいるカッコの周りに角カッコ(‘[…]’)が現れます。再帰編集中も別の再帰編集に入ると、角カッコは2重になります。再帰編集は、特定のバッファにだけ関係するものではなく、Emacs全体に影響するので、角カッコはすべてのウィンドウのモード行に表示されるか、まったく表示されないのどちらかです。再帰編集レベルを参照してください。
モードラインの外観は、その内容の書式と同様、変更できます。モードラインのオプションを参照してください。さらにモードラインはマウスに反応します。モードラインの違う部分をクリックすることでさまざまなコマンドを実行できます。モードラインのマウスコマンドを参照してください。また、モードラインのマウス感応範囲上でマウスポインターをホバリングすると、モードライン上でクリックして呼び出すことができるコマンドに関する情報を表示するツールチップ(ツールチップを参照)が表示されます。また、モードラインのマウスセンシティブ(mouse-sensitive: マウス感応)な部分の上にマウスをホバリングすると、モードライン上をクリックして呼び出せるコマンドに関する情報がツールチップ(ツールチップを参照)が表示されます。