Переменные, используемые в строке режима
В этом разделе описаны переменные, включенные стандартным значением mode-line-format в текст строки режима. Эти переменные не являются чем-то особенным; любые другие переменные могли бы оказывать то же самое влияние на строку режима, если бы значение mode-line-format было изменено для их использования. Однако различные части Emacs устанавливают эти переменные, предполагая, что они будут управлять частями строки режима; поэтому, практически говоря, использование этих переменных в строке режима имеет важное значение. Также см. Дополнительная строка режима в Руководстве по GNU Emacs.
- Переменная: mode-line-mule-info
Эта переменная содержит значение конструкции строки режима, которая отображает информацию об окружении языка, кодировке буфера и текущем методе ввода. См. Символы, отличные от ASCII.
- Переменная: mode-line-modified
-
Эта переменная содержит значение конструкции строки режима, которая отображает, был ли текущий буфер изменён. Её значение по умолчанию отображает «**», если буфер изменён, «--», если буфер не изменён, «%%», если буфер только для чтения, и «%*», если буфер только для чтения и изменён.
Изменение этой переменной не вызывает обновления строки режима.
- Переменная: mode-line-frame-identification
Эта переменная идентифицирует текущую раму. Её значение по умолчанию отображает
" ", если вы используете систему окон, которая может отображать несколько рам, или"-%F ", в обычном терминале, который отображает только одну раму за раз.
- Переменная: mode-line-buffer-identification
Эта переменная идентифицирует буфер, отображаемый в окне. Её значение по умолчанию отображает имя буфера, дополненное пробелами до как минимум 12 столбцов.
- Переменная: mode-line-position
Эта переменная указывает позицию в буфере. Её значение по умолчанию отображает процент буфера и, необязательно, размер буфера, номер строки и номер столбца.
- Пользовательский параметр: mode-line-percent-position
Этот параметр используется в
mode-line-position. Его значение определяет процент буфера для отображения (один изnil,"%o","%p","%P"или"%q", см. %-Конструкции) и ширину для заполнения пробелами или обрезки. Рекомендуется устанавливать этот параметр с помощью средстваcustomize-variable.
- Переменная: vc-mode
Переменная
vc-mode, локальная для каждого буфера, записывает, поддерживается ли файл, посещённый в буфере, с помощью системы управления версиями и, если да, то какой. Её значение — строка, появляющаяся в строке режима, илиnilпри отсутствии системы управления версиями.
- Переменная: mode-line-modes
Эта переменная отображает основные и второстепенные режимы буфера. Её значение по умолчанию также отображает уровень рекурсивного редактирования, информацию о состоянии процесса и действует ли сужение.
- Переменная: mode-line-remote
Эта переменная используется для отображения того, является ли
default-directoryдля текущего буфера удалённым.
- Переменная: mode-line-client
Эта переменная используется для идентификации
emacsclientрам.
Следующие три переменные используются в mode-line-modes:
- Переменная: mode-name
Эта локальная переменная буфера содержит «красивое» имя основного режима текущего буфера. Каждый основной режим должен устанавливать эту переменную, чтобы имя режима отображалось в строке режима. Значение не обязательно должно быть строкой, но может использовать любой из типов данных, допустимых в конструкции строки режима (см. Данные строки режима). Чтобы вычислить строку, которая будет идентифицировать имя режима в строке режима, используйте
format-mode-line(см. Имитирование строки режима).
- Переменная: mode-line-process
Эта локальная переменная буфера содержит информацию о строке режима о состоянии процесса в режимах, используемых для взаимодействия с дочерними процессами. Она отображается сразу после имени основного режима без промежуточного пробела. Например, её значение в буфере *shell* составляет
(":%s"), что позволяет оболочке отображать свой статус вместе с основным режимом, как: ‘(Shell:run)’. Обычно эта переменная имеет значениеnil.
- Переменная: mode-line-front-space
Эта переменная отображается в начале строки режима. По умолчанию эта конструкция отображается в самом начале строки режима, за исключением случаев, когда есть сообщение о полной памяти, в этом случае оно отображается первым.
- Переменная: mode-line-end-spaces
Эта переменная отображается в конце строки режима.
- Переменная: mode-line-misc-info
Конструкция строки режима для различных сведений. По умолчанию здесь отображается информация, указанная в
global-mode-string.
- Переменная: mode-line-position-line-format
Формат, используемый для отображения номеров строк, когда
line-number-mode(см. Дополнительная строка режима в Руководстве по GNU Emacs) включен. ‘%l’ в формате будет заменено номером строки.
- Переменная: mode-line-position-column-format
Формат, используемый для отображения номеров столбцов, когда
column-number-mode(см. Дополнительная строка режима в Руководстве по GNU Emacs) включен. ‘%c’ в формате будет заменено нулевым номером столбца, а ‘%C’ — номером столбца, начиная с единицы.
- Переменная: mode-line-position-column-line-format
Формат, используемый для отображения номеров столбцов, когда включены как
line-number-mode, так иcolumn-number-mode. См. предыдущие две переменные для значения форматов ‘%l’, ‘%c’ и ‘%C’.
- Переменная: minor-mode-alist
-
Эта переменная содержит список ассоциаций, элементы которого указывают, как строка режима должна указывать, что второстепенный режим активен. Каждый элемент
minor-mode-alistдолжен быть списком из двух элементов:(minor-mode-variable mode-line-string)
В более общем случае mode-line-string может быть любой конструкцией строки режима. Она появляется в строке режима, когда значение minor-mode-variable отлично от
nil, и не иначе. Эти строки должны начинаться с пробелов, чтобы они не сливались. По соглашению minor-mode-variable для конкретного режима устанавливается в значение, отличное отnil, при активации этого второстепенного режима.minor-mode-alistсамо по себе не является локальным для буфера. Каждая переменная, упомянутая в списке ассоциаций, должна быть локальной для буфера, если её второстепенный режим может быть включён отдельно в каждом буфере.
- Переменная: global-mode-string
-
Эта переменная содержит конструкцию строки режима, которая по умолчанию появляется в строке режима сразу после
which-function-modeвторостепенного режима, если он установлен, иначе послеmode-line-modes. Элементы, добавляемые в эту конструкцию, обычно должны заканчиваться пробелом (чтобы гарантировать правильное отображение последовательныхglobal-mode-stringэлементов). Например, командаdisplay-timeустанавливаетglobal-mode-stringдля ссылки на переменнуюdisplay-time-string, которая содержит строку с информацией о времени и загрузке.Конструкция ‘%M’ подставляет значение
global-mode-string, но это устарело, так как переменная включена в строку режима сmode-line-format.
Вот упрощённая версия значения по умолчанию для mode-line-format. Реальное значение по умолчанию также определяет добавление текстовых свойств.
("-"
mode-line-mule-info
mode-line-modified
mode-line-frame-identification
mode-line-buffer-identification
" " mode-line-position (vc-mode vc-mode) " "
mode-line-modes
(which-function-mode ("" which-func-format "--"))
(global-mode-string ("--" global-mode-string))
"-%-")
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/Mode-Line-Variables.html