Como o mbork comentou, você pode usar delight.el para modificar ou desativar seletivamente o texto do modo secundário (e de fato o principal) na linha de modo.
Uma das vantagens é que ele cuida de eval-after-load
(que você precisa escrever manualmente com diminish.el na maioria dos casos de uso), o que torna a configuração mais limpa. Você ainda precisa das mesmas informações - o nome do modo e a biblioteca que o implementa (o que o Emacs dirá se você perguntar sobre o modo) - mas você pode agrupar tudo em um único formulário:
(require 'delight)
(delight '((some-mode nil "some-library")
(some-other-mode nil "some-other-library")))
(Ou siga o link acima para alguns exemplos de uso real.)
Eu recomendaria esta abordagem, porque mesmo que você não quer mais texto modo menor mais leve, há uma boa chance que você vai encontrar alguns deles útil (e você ainda pode modificar aquelas a ser mais curto).
Se você realmente deseja eliminar todo o texto menor do modo secundário (e novamente, eu não o recomendo), você pode modificar a mode-line-modes
variável. As variáveis da linha de modo foram alteradas há algum tempo, portanto, você pode usar M-x find-variable RET mode-line-modes RET
e adaptar manualmente sua definição padrão, editando a seção referente minor-modes-alist
.
Obviamente, você precisaria mantê-lo, o que não é tão rápido, então você pode preferir substituir o minor-mode-alist
símbolo dentro do valor existente. A seguir, é um pouco específico da implementação, mas certamente melhor do que definir mode-line-modes
na íntegra, e você pode ativar e desativar.
(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)