このセクションではmode-line-format
の標準的な値としてモードラインテキストに組み込まれる変数を説明します。これらの変数は本質的には特別なものではありません。mode-line-format
が使用する変数を他の変数に変更すれば、それらはモードライン上で同様の効果をもちます。しかしEmacsのさまざまな部分は、それらの変数がモードラインを制御するという認識の元でそれらの変数をセットします。したがって事実上モードラインでそれらの変数を使用するのは必須なのです。Optional
Mode Line in The GNU Emacs Manualも参照してください。
この変数は言語環境(language environment)、バッファーコーディングシステム、カレント入力メソッド(current input method)に関する情報のモードライン構文の値を保持する。非ASCII文字を参照のこと。
この変数はカレントバッファーが変更されたかどうかを表示するモードライン構文の値を保持する。デフォルト値ではバッファーが変更されていれば‘**’、バッファーが変更されていなければ‘--’、バッファーが読み取り専用なら‘%%’、読み取り専用だが変更されているときは‘%*’を表示する。
この変数を変更してもモードラインは強制的に更新されない。
この変数はカレントフレームを識別する。デフォルト値では複製フレームを表示可能なウィンドウシステムを使用している場合は"
"
、一度に1つのフレームだけを表示する通常の端末では"-%F "
を表示する。
この変数はそのウィンドウ内で表示されているバッファーを識別する。デフォルト値では少なくとも12列になるようスペースパディングされたバッファー名を表示する。
この変数はバッファー内での位置を表示する。デフォルト値ではバッファーのパーセント位置、オプションでバッファーサイズ、行番号、列番号を表示する。
このオプションはmode-line-position
の中で使用される。これの値はバッファーのパーセンテージ(nil
、"%o"
、"%p"
、"%P"
、"%q"
のいずれか。モードラインでの%
構文を参照)とフィルするスペースか切り詰めの幅の両方を指定する。このオプションはcustomize-variable
機能でセットすることを推奨する。
変数vc-mode
は各バッファーにたいしてバッファーローカルであり、そのバッファーがvisitしているファイルがバージョンコントロールで保守されているかどうか、保守されている場合はバージョンコントロールシステムの種別を表示する。値はモードラインに表示される文字列、またはバージョンコントロールされていなければnil
。
この変数はそのバッファーのメジャーモードとマイナーモードを表示する。デフォルト値では再帰編集レベル(recursive editing level)、プロセス状態の情報、ナローイング(narrowing)効果の有無を表示する。
この変数はカレントバッファーのdefault-directory
がリモートかどうかを表示するために使用される。
この変数はemacsclient
フレームを識別するために使用される。
mode-line-format
内でこのシンボルの後に続くものは、すべて右揃えされる。
この変数はmode-line-format-right-align
によりコンテンツが正確に位置揃えされるように制御する。
以下の3つの変数はmode-line-modes
内で使用されます:
このバッファーローカル変数はカレントバッファーのメジャーモードの“愛称(pretty
name)”を保持する。モードラインにモード名が表示されるように、すべてのメジャーモードはこの変数をセットすること。値は文字列である必要はなく、モードライン構文内で有効な任意のデータ型(モードラインのデータ構造を参照)を使用できる。モードライン内でモード名を識別する文字列の計算にはformat-mode-line
を使用する(モードラインのフォーマットのエミュレートを参照)。
このバッファーローカル変数には、そのモードにおいてサブプロセスとの通信にたいするプロセス状態のモードライン情報が含まれる。これはメジャーモード名の直後(間にスペースはない)に表示される。たとえば*shell*バッファーでの値は(":%s")
であり、これは‘(Shell:run)’のように、メジャーモードとともにその状態を表示する。この変数は通常はnil
。
この変数はモードラインの一番前に表示される。memory-fullメッセージがある場合を除き、デフォルトではこの構文はモードライン先頭の右側に表示される。
この変数はモードラインの終端に表示される。
その他の情報にたいするモードライン構文。デフォルトではglobal-mode-string
で指定される情報を表示する。
line-number-mode
(Optional Mode Line in The GNU Emacs
Manualを参照)がオンの際に行番号表示に使用するフォーマット。フォーマット内の‘%l’は行番号に置き換えられる。
column-number-mode
(Optional Mode Line in The GNU Emacs
Manualを参照)をオンに切り替えた際に列番号の表示に使用するフォーマット。フォーマット内の‘%c’は0基準、‘%C’は1基準の列番号に置き換えられる。
line-number-mode
とcolumn-number-mode
の両方がオンの際に列番号表示に使用するフォーマット。フォーマットspecsの‘%l’、‘%c’、‘%C’の意味については、前出の2つの変数を参照のこと。
この変数はアクティブなマイナーモードをモードラインに示す方法を指定する要素をもった連想リスト(association
list)を保持する。minor-mode-alist
の各要素は以下のような2要素のリストであること:
(minor-mode-variable mode-line-string)
より一般的にはmode-line-stringは任意のモードライン構文を指定できる。minor-mode-variableの値が非nil
ならモードラインに表示され、それ以外なら表示されない。混合しないようにこれらの文字列はスペースで始めること。慣例的に特定のモードにたいするminor-mode-variableは、そのマイナーモードがアクティブになった際に非nil
値にセットされる。
minor-mode-alist
自体はバッファーローカルではない。このalist内で参照される各変数は、そのマイナーモードをバッファーごとに個別に有効にできるならバッファーローカルであること。
この変数は、デフォルトではmode-line-misc-info
の一部としてモードラインに表示されるモードライン構文が保持されている。マイナーモードwhich-function-mode
が有効ならこのモード情報の直後、有効でなければmode-line-modes
の後に表示される。この構文に追加する要素は通常はスペース内に収まること(後続のglobal-mode-string
要素が正しく表示されるために)。
‘%M’構文はglobal-mode-string
の値を置き換える。この変数自体はmode-line-misc-info
で使用されているので、この構文はデフォルトのモードライン使用されない。
以下はmode-line-format
のデフォルト値の簡略化バージョンです。実際のデフォルト値には追加のテキストプロパティ指定も含まれます。
("-" mode-line-mule-info mode-line-modified mode-line-frame-identification mode-line-buffer-identification
" " mode-line-position (vc-mode vc-mode) " "
mode-line-modes (which-function-mode ("" which-func-format "--")) (global-mode-string ("--" global-mode-string)) "-%-")