Spec-Zone.ru › Elisp

Верхний уровень управления строкой режима

Переменная, обеспечивающая общий контроль над строкой режима, — это mode-line-format.

Пользовательский параметр: mode-line-format

Значение этой переменной представляет собой конструкцию строки режима, которая управляет содержимым строки режима. Она всегда локальна для буфера во всех буферах.

Если вы установите эту переменную в значение nil в буфере, у этого буфера не будет строки режима. (Окно, которое имеет высоту всего в одну строку, также не отображает строку режима.)

Значение по умолчанию для mode-line-format разработано для использования значений других переменных, таких как mode-line-position и mode-line-modes (которые, в свою очередь, включают значения переменных mode-name и minor-mode-alist). Очень немногим режимам требуется изменять само значение mode-line-format. Для большинства целей достаточно изменить некоторые переменные, к которым mode-line-format обращается непосредственно или косвенно.

Если вы всё-таки измените mode-line-format само по себе, новое значение должно использовать те же переменные, что и в значении по умолчанию (см. Переменные строки режима), а не дублировать их содержимое или отображать информацию другим способом. Таким образом, кастомизации, внесённые пользователем или Lisp-программами (например, display-time и главными режимами) путём изменения этих переменных, остаются эффективными.

Вот гипотетический пример mode-line-format, который может быть полезен для режима Shell (на самом деле, режим Shell не устанавливает mode-line-format):

(setq mode-line-format
  (list "-"
   'mode-line-mule-info
   'mode-line-modified
   'mode-line-frame-identification
   "%b--"
   ;; Note that this is evaluated while making the list.
   ;; It makes a mode line construct which is just a string.
   (getenv "HOST")
   ":"
   'default-directory
   "   "
   'global-mode-string
   "   %[("
   '(:eval (format-time-string "%F"))
   'mode-line-process
   'minor-mode-alist
   "%n"
   ")%]--"
   '(which-function-mode ("" which-func-format "--"))
   '(line-number-mode "L%l--")
   '(column-number-mode "C%c--")
   '(-3 "%p")))

(Переменные line-number-mode, column-number-mode и which-function-mode активируют определённые дополнительные режимы; как обычно, эти имена переменных также являются именами команд дополнительных режимов.)

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-Top.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API