変数mode-line-format
はモードラインの全体的な制御を行います。
この変数の値はモードラインのコンテンツを制御するモードライン構文である。これはすべてのバッファーにおいて常にバッファーローカルである。
あるバッファー内でこの変数にnil
をセットすると、そのバッファーはモードラインをもたない(高さが1行しかないウィンドウもモードラインを表示しない)。
mode-line-format
のデフォルト値はmode-line-position
やmode-line-modes
(これはmode-name
とminor-mode-alist
の値を組み込む)のような、他の変数の値を使用するようデザインされています。mode-line-format
自体を変更する必要があるモードはほとんどありません。ほとんどの用途にたいしては、mode-line-format
が直接または間接的に参照するいくつかの変数を修正すれば十分です。
mode-line-format
l自体の変更を行う場合には、コンテンツを複製したり異なる様式で情報を表示するのではなく、新たな値にはデフォルト値(モードラインで使用される変数を参照)に出現する同じ変数を使用するべきです。この方法を使用すればユーザーや(display-time
やメジャーモードのような)Lispプログラムにより行われたカスタマイズは、それらの変数への変更を通じて効力を保ちます。
以下はShellモードにたいして有用かもしれない架空のmode-line-format
の例です(実際にはShellモードはmode-line-format
をセットしない):
(setq mode-line-format (list "-" 'mode-line-mule-info 'mode-line-modified 'mode-line-frame-identification "%b--"
;; これはリスト作成中に評価されることに注意 ;; これは単なる文字列のモードライン構文を作成する (getenv "HOST")
":" 'default-directory " " 'global-mode-string " %[(" '(:eval (format-time-string "%F")) 'mode-line-process 'minor-mode-alist "%n" ")%]--"
'(which-function-mode ("" which-func-format "--")) '(line-number-mode "L%l--") '(column-number-mode "C%c--") '(-3 "%p")))
(変数line-number-mode
、column-number-mode
、which-function-mode
は特定のマイナーモードを有効にする。これらの変数名は通常のようにマイナーモードコマンド名でもある。)