Инициализация, специфичная для терминала
Каждый тип терминала может иметь свою собственную библиотеку 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