Next: , Previous: , Up: モードラインのフォーマット   [Contents][Index]


24.4.3 モードライン制御のトップレベル

変数mode-line-formatはモードラインの全体的な制御を行います。

User Option: mode-line-format

この変数の値はモードラインのコンテンツを制御するモードライン構文である。これはすべてのバッファーにおいて常にバッファーローカルである。

あるバッファー内でこの変数にnilをセットすると、そのバッファーはモードラインをもたない(高さが1行しかないウィンドウもモードラインを表示しない)。

mode-line-formatのデフォルト値はmode-line-positionmode-line-modes (これはmode-nameminor-mode-alistの値を組み込む)のような、他の変数の値を使用するようデザインされています。mode-line-format自体を変更する必要があるモードはほとんどありません。ほとんどの用途にたいしては、mode-line-formatが直接または間接的に参照するいくつかの変数を修正すれば十分です。

mode-line-formatl自体の変更を行う場合には、コンテンツを複製したり異なる様式で情報を表示するのではなく、新たな値にはデフォルト値(モードラインで使用される変数を参照)に出現する同じ変数を使用するべきです。この方法を使用すればユーザーや(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-modecolumn-number-modewhich-function-modeは特定のマイナーモードを有効にする。これらの変数名は通常のようにマイナーモードコマンド名でもある。)