Ich verwende einige Nebenmodi und weiß normalerweise, welcher Nebenmodus in jedem Hauptmodus aktiviert ist. Wenn ich wirklich die vollständige Liste sehen möchte, kann ich ausführen C-h v minor-mode-list.
Gleichzeitig ist meine Moduszeile sehr verstopft. Wenn ich das Bild vertikal teile, kann ich manchmal das Ende der Moduszeile nicht lesen.
Aktuelle Frage: Wie deaktiviere ich die Anzeige der Liste der Nebenmodi in der Moduszeile? Zum Beispiel könnte es jetzt so aussehen:
-:--- main.c All (7,12) (C/l FlyC SScr Abbrev Fill) [main] 16:19 0.45
Ich möchte, dass es prägnanter aussieht:
-:--- main.c All (7,12) (C/l) [main] 16:19
mode-line
minor-mode
Mark Karpov
quelle
quelle
Antworten:
Der Diminish-Modus (in Melpa verfügbar) erledigt dies.
quelle
(diminish 'projectile-mode "p")
(eval-after-load "filladapt" '(diminish 'filladapt-mode))
(anhand des Beispiels aus dem Emacs-Wiki) und nicht(diminish 'filladapt-mode)
wie in der Antwort angegeben ist. Sie können die Kurzversion nur verwenden, wenn der Modus garantiert bereits geladen ist.Wie mbork kommentierte, können Sie delight.el verwenden , um Text im Nebenmodus (und in der Tat im Hauptmodus) in der Moduszeile selektiv zu ändern oder zu deaktivieren.
Einer der Vorteile ist, dass es sich um das kümmert
eval-after-load
(was Sie in den meisten Anwendungsfällen manuell mit diminish.el schreiben müssen), was die Konfiguration übersichtlicher macht. Sie benötigen immer noch die gleichen Informationen - den Namen des Modus und die Bibliothek, die ihn implementiert (was Emacs Ihnen mitteilt, wenn Sie ihn nach dem Modus fragen), aber Sie können alles in eine einzige Form zusammenfassen:(Oder folgen Sie dem obigen Link, um einige Beispiele für die reale Verwendung zu sehen.)
Ich würde empfehlen , diesen Ansatz, denn selbst wenn Sie nicht wollen , die meist kleineren Modi leichten Text, gibt es eine gute Chance, dass Sie einige von ihnen nützlich finden (und Sie können immer noch die diejenigen sein , kürzer ändern).
Wenn Sie wirklich alle leichteren Texte im Nebenmodus entfernen möchten (und ich empfehle es auch nicht), können Sie die
mode-line-modes
Variable ändern . Die Moduszeilenvariablen haben sich vor einiger Zeit geändert, sodass Sie möglicherweiseM-x find-variable RET mode-line-modes RET
Ihre Standarddefinition verwenden und dann manuell anpassen möchten, indem Sie den entsprechenden Abschnitt bearbeitenminor-modes-alist
.Natürlich dann würden Sie sie halten müssen, was nicht so Blitz ist, so dass Sie das Ersetzen könnten es vorziehen ,
minor-mode-alist
Symbol innerhalb des vorhandenen Wertes. Das Folgende ist etwas implementierungsspezifisch, aber auf jeden Fall besser als das Festlegenmode-line-modes
in seiner Gesamtheit, und Sie können es ein- und ausschalten.quelle
load-path
undrequire
. Früher habe ich alle Emacs-Pakete auf diese Weise installiert, als ich vor einem Jahr damit angefangen habe.delight
zu MELPA hinzugefügt .delight
ist heutzutage in GNU ELPA und nicht in MELPA (erwähnt, falls jemand durch die vorherigen Kommentare verwirrt wird).Verwenden Sie Rich-Minority mit config:
Ich habe auch den Gedanken wie du, aber ich verkürze die Mode-Zeile paranoider :
Jetzt kann ich immer die Benachrichtigung im Twitter-Modus und den Timer im Org-Modus sehen: D
quelle
Folgendes hat bei mir funktioniert:
Dank Drews Kommentar habe ich die Umsetzung dieser Lösung verbessert. Jetzt nutzt es die Vorteile von Assoziationslisten und sollte ein bisschen effizienter sein ;-)
quelle
minor-mode-alist
einer Alist besteht darin, dass Einträge am Kopf hinzugefügt und entfernt werden können, um Einträge weiter unten in der Liste mit demselben Schlüssel zu beschatten und zu entfernen. Wenn Sie das tun möchten, was Sie gerade tun, ändern Sie einfach den ersten Eintrag (gefunden mitassoc
, geändert mitsetcar
usw.) für jeden Schlüssel, damit Sie diese nützliche, beabsichtigte Funktion nicht verlieren.Ich werde meine Lösung auch in den Ring werfen:
modeline-set-lighter
Mit dieser Option können Sie das Feuerzeug eines Moll-Modus auf eine beliebige Zeichenfolge einstellen.modeline-remove-lighter
Damit können Sie das Feuerzeug eines Nebenmodus vollständig entfernen.Dann rufe ich am Ende meiner Init-Datei einfach diese Funktionen für die Nebenmodi auf, deren Feuerzeuge ich ändern möchte:
quelle
Sie können auch alle Nebenmodi auf folgende Weise entfernen:
Dies wird auch für kleinere Modi funktionieren, die in Zukunft definiert werden, da nur die Verwendung von
minor-mode-alist
aus der entfernt wirdmode-line-format
.quelle
Es ist erwähnenswert, dass dies
use-package
Abnehmen und Entzücken unterstützt . Wenn Sie es zum Verwalten Ihrer Pakete verwenden, können Sie die untergeordneten Modi in der Moduszeile ausblenden und die Schlüsselwörter: diminish oder: delight hinzufügen.quelle
Ich sehe keinen Sinn darin, ausgefallene Namenserweiterungen für etwas so Einfaches wie:
Beispielsweise:
Sie können auf diese Weise jede Art von Sachen machen. Das Ersetzen von Text ist aus dem Obigen ersichtlich. Um beispielsweise den Flymake-Modus an den Anfang der Liste zu setzen:
quelle