Podczas gdy możliwe jest „poprawne” wyrównanie do lewej / prawej strony, dodanie alternatywnej metody, ponieważ pełna ocena lewej i prawej tylko dla wyrównania jest nieco ciężka, gdy istnieje prostsza alternatywa.
Jeśli wiesz, że potrzebujesz tylko stałej ilości miejsca po prawej stronie, możesz wypełnić wszystkie znaki oprócz N , działa to tak długo, jak odpowiedni rozmiar ma stałą długość.
%12s
Można użyć formatowania łańcucha i tym podobnych, aby mieć pewność, że rozmiar łańcucha się nie zmieni.
(defun mode-line-fill (face reserve)
"Return empty space using FACE and leaving RESERVE space on the right."
(when
(and window-system (eq 'right (get-scroll-bar-mode)))
(setq reserve (- reserve 3)))
(propertize " "
'display
`((space :align-to (- (+ right right-fringe right-margin) ,reserve)))
'face face
)
)
(setq-default
mode-line-format
(list
;; left align
"%e %b [%*]"
;; right align
(mode-line-fill 'mode-line 18)
"%6l, %4c, %8p"
)
)
)
Na przykład:
CMakeLists.txt [-] 1590, 0, 94%
Zauważ, że działa to dobrze tylko wtedy, gdy chcesz wyświetlić kilka elementów po prawej stronie, jak w tym przykładzie - linia / kolumna / procent. Wyświetlanie wszystkich mniejszych trybów np. Nie działałoby dobrze.