mode-line-format を修正するのではなく、 mode-line- format で参照される変数の ほうを修正すべきでしょう。新しくモードを作る際にモードラインを修正しなくては いけないのでしたら、(ユーザーはなじんだ場所に情報が表示されることを期待する ため)デフォルトの値に近いものを用いるべきです。そのモードではモードラインに、 どのような(重要な) 情報を表示するかということをドキュメントしておくべきです。
モードラインを変更する場合、"あるフィールドは (その環境の状態に関する)重要な情 報を表示するために存在している" ということを前提にしているモードがいくつか存在 している点に注意して下さい。
(このような注意のもとで)以下に mode-line-format の例を示します。これはホスト名 とそのデフォルトのディレクトリを含んでいるため、shell-mode で役立ちます。
(setq mode-line-format (list "" 'mode -line-modified "%b--" (getenv "HOST") ":" 'default-directory " " 'global-mode-string " %[(" 'major-mode 'minor-mode-alist "%n" 'mode-line-process ")%]----" '(-3 . "%p") "-%-"))