Spec-Zone.ru › Elisp

Инициализация, специфичная для терминала

Каждый тип терминала может иметь свою собственную библиотеку Lisp, которую Emacs загружает при запуске на этом типе терминала. Имя библиотеки формируется путём конкатенации значения переменной term-file-prefix и типа терминала (указанного переменной среды TERM). Обычно, term-file-prefix имеет значение "term/"; изменение этого не рекомендуется. Если в списке ассоциаций term-file-aliases имеется запись, соответствующая TERM, Emacs использует связанное значение вместо TERM. Emacs находит файл обычным способом, просматривая каталоги load-path, и пробуя суффиксы ‘.elc’ и ‘.el’.

Обычная роль библиотеки, специфичной для терминала, заключается в разрешении специальных клавиш для отправки последовательностей, которые Emacs может распознать. Она также может потребоваться для установки или добавления к input-decode-map, если запись Termcap или Terminfo не указывает все функциональные клавиши терминала. См. Ввод с терминала.

Когда имя типа терминала содержит дефис или подчёркивание, и не найдена библиотека с именем, идентичным имени терминала, Emacs удаляет из имени терминала последний дефис или подчёркивание и всё, что за ним следует, и пытается снова. Этот процесс повторяется, пока Emacs не найдёт соответствующую библиотеку или пока в имени больше нет дефисов или подчёркиваний (то есть библиотеки, специфичной для терминала, нет). Например, если имя терминала — ‘xterm-256color’, и нет библиотеки term/xterm-256color.el, Emacs пытается загрузить term/xterm.el. При необходимости, библиотека терминала может вычислить (getenv "TERM"), чтобы найти полное имя типа терминала.

Ваш файл инициализации может предотвратить загрузку библиотеки, специфичной для терминала, установив переменную term-file-prefix в значение nil.

Вы также можете переопределить некоторые действия библиотеки, специфичной для терминала, используя tty-setup-hook. Это обычный хук, который Emacs выполняет после инициализации нового текстового терминала. Вы можете использовать этот хук для определения инициализации для терминалов, которые не имеют своих библиотек. См. Хук.

Параметр пользователя: term-file-prefix

Если значение этой переменной не nil, Emacs загружает файл инициализации, специфичный для терминала, следующим образом:

(load (concat term-file-prefix (getenv "TERM")))

Вы можете установить переменную term-file-prefix в значение nil в вашем файле инициализации, если не хотите загружать файл инициализации терминала.

В MS-DOS Emacs устанавливает переменную среды TERM в значение ‘internal’.

Параметр пользователя: term-file-aliases

Эта переменная представляет собой список ассоциаций, сопоставляющий типы терминалов с их псевдонимами. Например, элемент вида ("vt102" . "vt100") означает, что терминал типа ‘vt102’ следует рассматривать как терминал типа ‘vt100’.

Переменная: tty-setup-hook

Эта переменная является обычным хуком, который Emacs выполняет после инициализации нового текстового терминала. (Это применимо, когда Emacs запускается в безадресном режиме и при создании подключения tty emacsclient.) Хук выполняется после загрузки вашего файла инициализации (если применимо) и файла Lisp, специфичного для терминала, поэтому вы можете использовать его для корректировки определений, созданных этим файлом.

Для связанной функции см. window-setup-hook.

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/Terminal_002dSpecific.html

Spec-Zone.ru

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