Si bien es posible hacer una alineación 'correcta' izquierda / derecha agregando un método alternativo porque evaluar completamente la izquierda y la derecha solo para la alineación es un poco pesado, cuando hay una alternativa más simple.
Si sabe que solo necesita una cantidad fija de espacio a la derecha, puede completar todos menos N caracteres, esto funciona siempre que el tamaño correcto sea una longitud fija.
El formato de cadena %12s
y similares se pueden usar para garantizar que la cadena no cambie de tamaño.
(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"
)
)
)
P.ej:
CMakeLists.txt [-] 1590, 0, 94%
Tenga en cuenta que esto solo funciona bien si desea mostrar algunos elementos en el lado derecho, como en este ejemplo: línea / columna / porcentaje. Mostrar todos los modos menores, por ejemplo, no funcionaría bien.