Mein Model ist voll. Kann ich dafür sorgen, dass Bilder anstelle von Modusnamen angezeigt werden?
Ich könnte Unicode-Emoji verwenden (z. B. 🐍 für Python oder 🐓 für Coq), aber auf einigen Computern, auf denen ich meine Emacs-Konfiguration verwende, sind nicht die richtigen Schriftarten vorinstalliert (im Idealfall würde ich diese Technik auch gerne in a wiederverwenden) Ich kann nicht erwarten, dass die Benutzer die richtige Schriftkonfiguration haben.
Ich habe versucht :image
, dem Modeline-Feuerzeug eines Spielzeug-Minor-Modus eine Anzeigeeigenschaft hinzuzufügen, aber in der Modeline wurde nichts angezeigt:
(define-minor-mode my/test-mode
"Test mode."
:lighter (propertize " 🐓" 'display '(image :type imagemagick
:file "/home/clement/.emacs.d/rooster.png")))
mode-line
images
text-properties
Clément
quelle
quelle
Antworten:
Die Moduszeile wird aus einer Liste von Segmenten gerendert, die jeweils ihre eigenen Sonderregeln haben. Siehe Modus Line - Daten für die Details. Der Symbolabschnitt enthält einen wichtigen Hinweis, damit Ihr Code funktioniert:
Ich vermute, dass der Nyan-Modus dies auf eine weniger als ideale Weise tut. Hier ist mein minimales Beispiel:
Der Grund, warum ich eine Liste von Leerzeichen und Bildern verwende, ist, dass es üblich ist, ein Feuerzeug mit einem Leerzeichen zu beginnen, um es von den vorhergehenden zu trennen.
quelle
emacs -Q
? Es funktioniert hervorragend, wenn Smart-Mode-Line aktiviert ist, aber ich kann es nicht zum Laufen bringen, wenn ich von einem nackten Emacs aus starte.:propertize
der Standardeinstellung nicht anzuwendenmode-line-format
.Gute Frage.
Sie könnten versuchen, so etwas als Feuerzeug zu verwenden:,
(concat " " (propertize " " 'display (create-image img-file)))
woimg-file
ist der Name Ihrer Bilddatei. (Das erste Leerzeichen dient nur dazu, das Feuerzeug vom vorherigen zu trennen.)Nun, ich habe gerade versucht, diesen Code zu verwenden, aber es hat bei mir nicht funktioniert. Sie könnten versuchen, ein bisschen mehr damit zu spielen. Keine Ahnung, ob es möglich ist.
Das Feuerzeug zeigt sich nur als gewöhnliches Raumzeichen - die
display
Eigenschaft scheint nicht respektiert zu werden.Wenn Sie keine gute Antwort auf diese Frage erhalten, sollten Sie eine Emacs-Erweiterungsanforderung über einreichen
M-x report-emacs-bug
.Eine Sache, die Sie auf jeden Fall tun können, ist, ein oder zwei Unicode-Zeichen in der Mode-Line-Zeichenfolge zu verwenden. Und Sie können Zeichen verwenden, die eigentlich Grafiken sind.
quelle