Bei folgender Modellkonfiguration:
(setq-default mode-line-format
(list
;; Current buffer name
"%b "
;; Major mode
"[%m] "
;; Modified status
"[%*] "
;; Cursor position
"Line: %l/%i Column: %c"))
Ich möchte, dass das letzte Element rechtsbündig angezeigt wird.
mode-line-format
ist dies keine richtige Antwort, abersmart-mode-line
richtig ausrichtet diemode-line-misc-info
standardmäßig aktiviert und es kann durch Einstellung der Liste von untergeordneter-Modi rechts ausrichtensml/mode-width
zu'right
.Antworten:
Wie die Antwort in den Kommentaren können Sie dies selbst tun, indem Sie Code schreiben, um eine schön verteilte Zeichenfolge zurückzugeben.
Hier ist eine einfache Methode, die nur links und rechts ausgerichteten Text unterstützt, der auf Ihre Spezifikationen angewendet wird.
es sieht am Ende so aus:
Beachten Sie auch, dass ich Ihre Argumente im Modus-Zeilenformat wie von Ihnen angegeben verwendet habe, aber ich glaube, dass Sie% i falsch verwenden, wodurch die Bytegröße des Puffers und nicht die Anzahl der Zeilen gedruckt wird. Sie können so etwas wie verwenden
(line-number-at-pos (point-max))
, um die Anzahl der Zeilen in Ihrem Puffer zu erhalten.quelle
window-total-width
, um auch Linum und Fransen zusätzliche Polsterungen zu berechnen.%
werden zweimal formatiert. Berücksichtigt dies in meiner Antwort, emacs.stackexchange.com/a/37270/2418 - verwenden Sie auchwindow-total-width
(danke!)Um die Antwort von @ jordon-biondo zu erweitern und einen angezeigten Fehler zu beheben
%
.Dieses Beispiel zeigt, wie Linienvariablen im Modusmodus mit der Ausrichtung verwendet werden können - was eine Weile gedauert hat, bis ich es herausgefunden habe.
Beispielausgabe:
init.el 1 : 0 <N> [-] Top -F1 (Emacs-Lisp WK ivy drag AC GitGutter)
quelle
Dies wird nicht sofort unterstützt, aber das
smart-mode-line
Paket unterstützt dies. Sie können dieses Paket entweder verwenden oder, wenn es mehr als das tut, was Sie wollen, nur die Bits extrahieren, die die gewünschte Funktion implementieren.quelle
smart-mode-line
und zu meinen Dotemacs hinzugefügt. Ich muss herausfinden, wie viel Platz ich rechts haben möchte, aber es ist besser als nichts. Ich akzeptiere jedoch keine Antwort, es sei denn, jemand veröffentlicht einen Weg, um die manuelle Zeichenzählung loszuwerden.Es ist zwar möglich, die Ausrichtung von links nach rechts zu korrigieren, indem eine alternative Methode hinzugefügt wird, da die vollständige Bewertung von links und rechts nur für die Ausrichtung etwas schwierig ist, wenn es eine einfachere Alternative gibt.
Wenn Sie wissen, dass Sie rechts nur einen festen Platz benötigen, können Sie alle bis auf N Zeichen eingeben. Dies funktioniert, solange die richtige Größe eine feste Länge hat.
Die Formatierung von Zeichenfolgen
%12s
und ähnliches kann verwendet werden, um sicherzustellen, dass die Größe der Zeichenfolge nicht geändert wird.Z.B:
CMakeLists.txt [-] 1590, 0, 94%
Beachten Sie, dass dies nur dann gut funktioniert, wenn Sie einige Elemente auf der rechten Seite anzeigen möchten, wie in diesem Beispiel - Zeile / Spalte / Prozentsatz. Das Anzeigen aller Nebenmodi für z. B. würde nicht gut funktionieren.
quelle