mborkがコメントしたように、delight.elを使用して、モード行のマイナー(およびメジャー)モードテキストを選択的に変更または無効にすることができます。
利点の1つは、eval-after-load
(ほとんどのユースケースでdiminish.elを使用して手動で記述する必要がある)の面倒を見ることです。これにより、構成がよりクリーンになります。まだ同じ情報が必要です-モードの名前と、それを実装するライブラリ(モードについて尋ねるとEmacsから通知されます)-を1つの形式にまとめることができます:
(require 'delight)
(delight '((some-mode nil "some-library")
(some-other-mode nil "some-other-library")))
(または、実際の使用例については上記のリンクを参照してください。)
ほとんどのマイナーモードのライターテキストが必要ない場合でも、それらの一部が有用である可能性が高いため、これらのアプローチを採用することをお勧めします(さらに、これらをより短く変更することができます)。
すべてのマイナーモードのライターテキストを完全に削除したい場合(および、再度お勧めしません)、mode-line-modes
変数を変更できます。モードライン変数はしばらく前に変更されたM-x find-variable RET mode-line-modes RET
ため、デフォルトの定義を使用してから手動で調整し、についてのセクションを編集することもできますminor-modes-alist
。
もちろん、それを維持する必要がありますが、それほどフラッシュではないため、既存の値内のminor-mode-alist
シンボルを置き換えることをお勧めします。以下は実装固有のものですが、設定全体よりも確かに優れており、オンとオフを切り替えることができます。mode-line-modes
(define-minor-mode minor-mode-blackout-mode
"Hides minor modes from the mode line."
t)
(catch 'done
(mapc (lambda (x)
(when (and (consp x)
(equal (cadr x) '("" minor-mode-alist)))
(let ((original (copy-sequence x)))
(setcar x 'minor-mode-blackout-mode)
(setcdr x (list "" original)))
(throw 'done t)))
mode-line-modes))
(global-set-key (kbd "C-c m") 'minor-mode-blackout-mode)