Go to the first, previous, next, last section, table of contents.

モードラインフォーマット

mode-line-format は、(カレントバッファの)モードライン表示に用いるテンプレート を保持する、バッファローカル変数です。同じバッファ用のウィンドウは(全て) 同じ mode-line-format を用い、そのモードラインは (たぶん、そのポジションフィールド を除いて) 同じように表示されます。モードラインは、 (バッファの名前、対応する ファイル、リカーシブエディティングの深さ、そしてもちろんそのバッファのメジャー モードとマイナーモードといった)そのバッファに関する情報を持ちます。

mode-line-format や default-mode-line-format を変更する必要のあるモードは、非 常に少数です。ほとんどの場合、mode-line-format で参照される変数を変更するだけ で十分です。

モードラインは(通常)バッファを変更する際、 (常に)アップデートされます。 mode-line-format で参照される変数(のいずれか)を変更した後、 (その新しい 情報を表示するため)モードラインのアップデートを行なわせたいわけですが、 (set-buffer-modified-p (buffer-modified-p))を呼び出すことでそれを行なう ことができます。

Variable: mode-line-format

mode-line-format の値は list か cons cell か symbol か string です。 もしlist なら、その要素が list か cons cell か symbol か string かも しれません。

SYMBOL は、t でも nil でも void でもない時、その値が用いられます (どのよう に??)。シンボルの値がストリングの場合、...

(SYMBOL THEN ELSE) は、そのシンボルの値が存在し、それが non-nil の場合、そのリストの 2番目 の要素がリカーシブに処理されます。しかし、シンボルの値が nil の場合、 (それが存在すれば) リストの 3番目の要素がリカーシブに処理されます。この ように、この構成は conditional です。

(STRING REST...) or (LIST REST...) は、各要素がリカーシブに処理されその結果が繋げ (訳注:concatenate)ら れます。

(WIDTH REST...) は、リストの残りが処理され、そのデータの右端が指定された数の幅まで、 (それが正の場合)空白でフィルされ、(それが負の場合)切り詰められます。

STRING % の後の 10進 digits は右端における空白のフィリングを指定します。

%b バッファ名を表示する (bufer-name 参照)。

%f visit されたファイルの名前を表示する (buffer-file-name 参照)。

%* バッファが変更された場合 `*' を表示する (buffer-modified-p 参照)。 そうでない場合 `-' を表示する。 バッファがリードオンリーの場合`%'を表示する(buffer-read-only 参照)。

%s プロセスの状態を表示する (process-status 参照) (古い??)。

%p ウィンドウの上にあるバッファのパーセントや Top や Bottom や All を 表示する。

%n narrow view が表示されている場合 Narrow を表示する (narrow-to-region 表示)。

%[ リカーシブエディティングレベルごとに `[' を 1つ表示する。`%]'も同様。

%% % を表示する

%- テンプレートの残りの部分を無視し - の表示で 行の残りの部分をフィルす る。

次の 2種類の %-constructs はまだサポートされていますが、変数 mode-name と変数global-mode-string を直接用いることで同じことができるため、古くな ってしまったものです。

%m mode-name の値を表示する。 %M global-mode-string の値を表示する。

Variable: default-mode-line-format

この変数は、(それを上書きしない)バッファ用のデフォルトの mode-line-format を持ちます。これは (default-value 'mode-line-format) と同じです。

default-mode-format のデフォルト値は:

  (list ""
   'mode-line-modified
   'mode-line-buffer-identification
   "   "
   'global-mode-string
   "   %[("
   'mode-name 'minor-mode-alist "%n" 'mode-line-process
   ")%]----"
   '(-3 . "%p")
   "-%-"))

Variable: mode-line-buffer-identification

表示されているバッファを示すモードラインコントロール。デフォルト値は `Emacs:%17b'。通常のファイル以外のものをエディットするメジャーモードは、こ れを変更します(e.g. Info, Dired,...)

Variable: mode-line-modified

この変数は、カレントバッファが変更されたか否かを示すモードラインコントロー ルを持ちます。 (フォーマットを記述する!!) デフォルト値は ("--%1*%1*-") で す。この変数を変更しても、モードラインのアップデートを強制することにはなり ません。

Variable: global-mode-string

この変数は、この変数が mode-line-format (デフォルト) に含まれるか、`%M' specification に含まれる場合(モードラインに)表示されるストリングを持ちま す。現在は display-time のみが global-mode-string を変更します。

Variable: minor-mode-alist

この変数は、"(モードラインにおいて)どのようにマイナーモードの activation を示すか" を指定する association リストを持ちます。リストの各要素は (variable string) という形をしています(訳注:??)。 variable の値が non-nil

の場合、 string がモードラインに含まれます。しかしこの逆はありません。変数 のテスト結果が nil もしくは void である限り、 (そのマイナーモードが active でなくても) 新しい要素をこのリストに追加しても安全です。

minor-mode-alist は、(通常)バッファローカルではありません。 alist 中の変数 は(たぶん)バッファローカルであるべきでしょう。

パッケージをロードしたりマイナーモードを activate する際 alist への追加(訳 注: augment)を行なう安全な方法の例を示します。これは、ある要素が 2 回以上 追加されてしまうことを防ぎます。

  (or (assq 'leif-mode minor-mode-alist)
      (setq minor-mode-alist
            (cons '(leif-mode " Leif") minor-mode-alist)))

minor-mode-alist のデフォルト値は標準のマイナーモードを持ちます。(このスト リングにおいて)スペース文字が前に置かれてある点に注意して下さい。

  ((abbrev-mode " Abbrev")
   (overwrite-mode " Ovwrt")
   (auto-fill-hook " Fill")
   (defining-kbd-macro " Def"))


Go to the first, previous, next, last section, table of contents.