Хоча можна зробити "правильне" вирівнювання ліворуч / праворуч, додавши альтернативний метод, оскільки повноцінна оцінка лівого та правого лише для вирівнювання є дещо важкою, коли є більш проста альтернатива.
Якщо ви знаєте, що потрібно лише фіксовану кількість місця праворуч, ви можете заповнити всі символи, крім N , це працює до тих пір, поки потрібний розмір має фіксовану довжину.
Форматування рядків %12s
та подібне можуть бути використані для того, щоб уникнути зміни розміру рядка.
(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"
)
)
)
Наприклад:
CMakeLists.txt [-] 1590, 0, 94%
Зауважте, що це добре працює лише в тому випадку, якщо ви хочете відобразити кілька елементів праворуч, як у цьому прикладі - рядок / стовпчик / відсоток. Показати всі незначні режими, наприклад, не буде добре.