Я использую довольно много второстепенных режимов, и обычно я знаю, какой второстепенный режим включен в каждом основном режиме. Если я действительно хочу увидеть полный список, я могу бежать C-h v minor-mode-list.
В то же время моя строка режима действительно засоряется, поэтому, когда я вертикально разделяю кадр, иногда я не могу прочитать конец строки режима.
Актуальный вопрос: как отключить отображение списка второстепенных режимов в строке режима? Например, теперь это может выглядеть так:
-:--- main.c All (7,12) (C/l FlyC SScr Abbrev Fill) [main] 16:19 0.45
Я хочу, чтобы это выглядело более лаконичным:
-:--- main.c All (7,12) (C/l) [main] 16:19
mode-line
minor-mode
Марк Карпов
источник
источник
Ответы:
Режим уменьшения (доступный в Melpa) сделает это.
источник
(diminish 'projectile-mode "p")
(eval-after-load "filladapt" '(diminish 'filladapt-mode))
(используя пример из Emacs Wiki), а не только(diminish 'filladapt-mode)
как предложено в ответе. Вы можете использовать только короткую версию, если режим гарантированно уже загружен.Как прокомментировал mbork, вы можете использовать delight.el для выборочного изменения или отключения второстепенного (и даже основного) текста режима в строке режима.
Одним из преимуществ является то, что он заботится о
eval-after-load
(который вам нужно написать вручную с помощью diminish.el в большинстве случаев), что делает конфигурацию более чистой. Вам по-прежнему нужна та же информация - имя режима и библиотека, которая его реализует (которую Emacs сообщит вам, если вы спросите об этом режиме), - но вы можете свернуть все это в одну форму:(Или перейдите по ссылке выше для некоторых реальных примеров использования.)
Я бы рекомендовал принимать этот подход, потому что даже если вы не хотите больше всего режим второстепенного светлее текста, есть хороший шанс , что вы найдете некоторые из них полезны (и вы все еще можете изменить эти те , чтобы быть короче).
Если вы действительно хотите исключить весь текст в более легком режиме (и опять же, я не рекомендую его), вы можете изменить
mode-line-modes
переменную. Переменные строки режима изменились некоторое время назад, поэтому вы можете захотеть использоватьM-x find-variable RET mode-line-modes RET
и затем вручную адаптировать определение по умолчанию, отредактировав раздел, касающийсяminor-modes-alist
.Конечно, тогда вам нужно сохранить его, что не так быстро, так что вы можете предпочесть замену
minor-mode-alist
символа в рамках существующего значения. Следующее в некоторой степени зависит от реализации, но, безусловно, лучше, чем настройкаmode-line-modes
в полном объеме, и вы можете включать и выключать его.источник
load-path
иrequire
. Я имел обыкновение «устанавливать» все пакеты Emacs таким образом, когда я начал использовать его год назад.delight
в MELPA.delight
находится в GNU ELPA, а не в MELPA (упомянуто на случай, если кто-то запутается в предыдущих комментариях).Используйте Rich-minority с config:
У меня тоже есть такая же мысль, как и у вас, но я сокращаю модельную линию более параноидально :
Теперь я всегда вижу уведомления в режиме Твиттера и таймер в режиме Org: D
источник
Вот что сработало для меня:
Благодаря комментарию Дрю , я улучшил реализацию этого решения. Теперь он использует преимущества списков ассоциаций и должен быть немного более эффективным ;-)
источник
minor-mode-alist
будучи креном в том , что можно добавлять и удалять записи в голову тени и unshadow записи далее вниз по списку , которые имеют один и тот же ключ. Если вы хотите делать то, что делаете, просто измените первую запись (найденную с помощьюassoc
, измененную с помощьюsetcar
и т. Д.) Для каждой клавиши, чтобы не потерять эту полезную, намеченную функцию.Я также добавлю свое решение в ринг:
modeline-set-lighter
позволяет установить зажигалку второстепенного режима на любую понравившуюся вам струну.modeline-remove-lighter
позволяет полностью убрать зажигалку из второстепенного режима.Затем в конце моего файла инициализации я просто вызываю эти функции для второстепенных режимов, зажигалки которых я хочу изменить:
источник
Вы также можете прямо удалить все второстепенные режимы следующим образом:
Это также будет работать для второстепенных режимов, определенных в будущем, поскольку оно просто полностью исключает использование
minor-mode-alist
изmode-line-format
.источник
Стоит отметить, что
use-package
поддерживает ублаженность и восторг . Если вы используете его для управления своими пакетами, вы можете скрыть второстепенные режимы в строке режима, добавив ключевые слова: diminish или: delight.источник
Я не вижу смысла устанавливать модные именованные расширения для чего-то простого:
Например:
Вы можете делать любые вещи таким образом. Замена текста очевидна из вышесказанного. Также, например, чтобы поставить режим flymake в начале списка:
источник