Эмуляция форматирования строки режима
Вы можете использовать функцию format-mode-line для вычисления текста, который будет отображаться в строке режима или заголовка на основе определённой конструкции строки режима.
- Функция: format-mode-line format &optional face window buffer
-
Эта функция форматирует строку текста в соответствии с format, как если бы она генерировала строку режима для window, но также возвращает текст в виде строки. Аргумент window по умолчанию устанавливается на выбранное окно. Если buffer не
nil, вся информация используется из buffer; по умолчанию она берётся из буфера окна window.Строковое значение обычно имеет свойства текста, соответствующие шрифтам, макросам и т.д., которые имела бы строка режима. Любой символ, для которого нет свойства
face, заданного format, получает значение по умолчанию, определяемое face. Если face равноt, это означаетmode-line, если window выбрано, в противном случаеmode-line-inactive. Если face равноnilили опущено, это означает шрифт по умолчанию. Если face является целым числом, возвращаемое значение этой функции не будет иметь свойств текста.Вы также можете указать другие допустимые шрифты как значение face. Если указан, этот шрифт предоставляет свойство
faceдля символов, шрифт которых не задан format.Обратите внимание, что использование
mode-line,mode-line-inactive, илиheader-lineв качестве face фактически повторно отобразит строку режима или строку заголовка соответственно, используя текущие определения соответствующего шрифта, помимо возврата отформатированной строки. (Другие шрифты не вызывают повторного отображения.)Например,
(format-mode-line header-line-format)возвращает текст, который отобразится в строке заголовка выбранного окна ("", если у него нет строки заголовка).(format-mode-line header-line-format 'header-line)возвращает тот же текст, при этом каждый символ несет шрифт, который у него будет в самой строке заголовка, а также перерисовывает строку заголовка.
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Emulating-Mode-Line.html