24.4.5 %-конструкции в строке режима

Строки, используемые в конструкциях строки режима, могут использовать определенные %-конструкции для подстановки различных типов данных. Ниже приведен список определенных %-конструкций и их значение.

В любой конструкции, кроме ‘%%’, вы можете добавить десятичное целое число после ‘%’ для указания минимальной ширины поля. Если ширина меньше, поле дополняется до этой ширины. Чисто числовые конструкции (‘c’, ‘i’, ‘I’ и ‘l’) дополняются путем вставки пробелов слева, а другие дополняются путем вставки пробелов справа.

%b

Текущее имя буфера, полученное с помощью функции buffer-name. См. Имена буферов.

%c

Текущий номер столбца точки, считая от нуля, начиная с левого поля окна.

%C

Текущий номер столбца точки, считая от одного, начиная с левого поля окна.

%e

Сообщение о том, что Emacs почти исчерпал память для объектов Lisp. В противном случае это пусто.

%f

Имя посещенного файла, полученное с помощью функции buffer-file-name. См. Имя файла буфера.

%F

Заголовок (только в оконной системе) или имя выбранного фрейма. См. Основные параметры.

%i

Размер доступной части текущего буфера; по сути, (- (point-max) (point-min)).

%I

Подобно ‘%i’, но размер выводится более читаемым способом с использованием ‘k’ для 10^3, ‘M’ для 10^6, ‘G’ для 10^9 и т. д., для сокращения.

%l

Текущий номер строки точки, считая в пределах доступной части буфера.

%M

Значение global-mode-string (которое по умолчанию является частью mode-line-misc-info).

%n

‘Narrow’, когда включено сужение; иначе ничего (см. narrow-to-region в Сужение).

%o

Степень travel окна по буферу (видимая часть буфера), т.е. размер текста над верхней частью окна, выраженный в процентах от всего текста вне окна, или ‘Top’, ‘Bottom’ или ‘All’.

%p

Процент текста буфера над верхней частью окна, или ‘Top’, ‘Bottom’ или ‘All’. Обратите внимание, что по умолчанию конструкция строки режима обрезает это до трех символов.

%P

Процент текста буфера, который находится над нижней частью окна (включая текст, видимый в окне, а также текст над верхней частью), плюс ‘Top’, если верх буфера виден на экране; или ‘Bottom’ или ‘All’.

%q

Проценты текста над как верхней, так и нижней частью окна, разделенные ‘-’, или ‘All’.

%s

Статус подпроцесса, принадлежащего текущему буферу, полученный с помощью process-status. См. Информация о процессе.

%z

Мнемоники систем кодирования клавиатуры, терминала и буфера.

%Z

Подобно ‘%z’, но включая формат конца строки.

%&

‘*’, если буфер изменен, и ‘-’ в противном случае.

%*

‘%’, если буфер только для чтения (см. buffer-read-only);
‘*’, если буфер изменен (см. buffer-modified-p);
‘-’ в противном случае. См. Изменение буфера.

%+

‘*’, если буфер изменен (см. buffer-modified-p);
‘%’, если буфер только для чтения (см. buffer-read-only);
‘-’ в противном случае. Это отличается от ‘%*’ только для измененного буфера только для чтения. См. Изменение буфера.

%@

‘@’, если default-directory буфера (см. Функции расширения имен файлов) находится на удаленной машине, и ‘-’ в противном случае.

%[

Указание глубины уровней рекурсивного редактирования (не считая уровней минибуфера): одно ‘[’ для каждого уровня редактирования. См. Рекурсивное редактирование.

%]

Одно ‘]’ для каждого уровня рекурсивного редактирования (не считая уровней минибуфера).

%-

Дефисы, достаточные для заполнения остатка строки режима.

%%

Символ ‘%’ — это способ включения буквального ‘%’ в строку, в которой разрешены %-конструкции.

Устаревшие %-конструкции

Следующие конструкции больше не следует использовать.

%m

Устарело; используйте вместо этого переменную mode-name. Конструкция %m неадекватна, поскольку она выдает пустую строку, если значение mode-name является конструкцией строки режима, не являющейся строкой (как, например, в emacs-lisp-mode).