Як коментує mbork, ви можете використовувати delight.el для вибіркової модифікації або відключення другорядного (і справді основного) тексту режиму в рядку режиму.
Однією з переваг є те, що він піклується про eval-after-load
(що потрібно писати вручну з diminish.el у більшості випадків використання), що робить конфігурацію більш чистою. Вам все одно потрібна однакова інформація - назва режиму та бібліотека, яка його реалізує (що Emacs скаже вам, якщо ви запитаєте його про режим) - але ви можете згорнути все це в єдину форму:
(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)