端末タイプはそれぞれ、その端末のタイプでEmacsが実行時にロードする独自のLispライブラリーをもつことができます。そのライブラリーの名前は変数term-file-prefix
の値と端末タイプ(環境変数TERM
により指定)を結合することにより構築されます。term-file-prefix
は通常は値"term/"
をもち変更は推奨しません。連想リストterm-file-aliases
内にTERM
にマッチするエントリーが存在する場合には、EmacsはTERM
のかわりにんその連想値を使用します。Emacsは通常の方法、つまりload-path
のディレクトリーから‘.elc’と‘.el’の拡張子のファイルを検索することにより、このファイルを探します。
端末固有ライブラリーの通常の役割は特殊キーによりEmacsが認識可能なシーケンスを送信可能にすることです。TermcapとTerminfoのエントリーがその端末のすべてのファンクションキーを指定していなければ、input-decode-map
へのセットや追加も必要になるかもしれません。端末の入力を参照してください。
端末タイプにハイフンとアンダースコアーが含まれて、その端末名に等しい名前のライブラリーが見つからないときには、Emacsはその端末名から最後のハイフンまたはアンダースコアー以降を取り除いて再試行します。このプロセスはEmacsがマッチするライブラリーを見つかるか、その名前にハイフンとアンダースコアーが含まれなくなる(つまりその端末固有ファイルが存在しない)まで繰り返されます。たとえば端末名が‘xterm-256color’でterm/xterm-256color.elというライブラリーが存在しなければEmacsはterm/xterm.elのロードを試みます。必要なら端末タイプの完全な名称を見つかるために端末ライブラリーは(getenv
"TERM")
を評価できます。
initファイルで変数term-file-prefix
をnil
にセットすることにより端末固有ライブラリーのロードを防ぐことができます。
tty-setup-hook
を使用することにより、端末固有ライブラリーのいくつかのアクションのアレンジやオーバーライドもできます。これは新たなテキスト端末の初期化後にEmacsが実行するノーマルフックです。自身のライブラリーをもたない端末にたいして初期化を定義するために、このフックを使用することのできるでしょう。フックを参照してください。
この変数の値が非nil
ならEmacsは以下のように端末固有初期化ファイルをロードする:
(load (concat term-file-prefix (getenv "TERM")))
端末初期化ファイルのロードを望まない場合には変数term-file-prefix
にnil
をセットできる。
MS-DOSではEmacsは環境変数TERM
に‘internal’をセットする。
この変数は端末タイプをエイリアスにマップする連想リスト。たとえば("vt102"
. "vt100")
という形式の要素は‘vt102’というタイプの端末を‘vt100’タイプの端末として扱うことを意味する。
この変数は新たなテキスト端末の初期化後にEmacsが実行するノーマルフック(これは非ウィンドウのモードでのEmacs開始時とemacsclient
のTTY接続作成時に適用される)。(適用可能なら)このフックはユーザーのinitファイルおよび端末固有Lispファイルのロード後に実行されるので、そのファイルにより行われた定義を調整するためにフックを使用できる。
関連する機能についてはwindow-setup-hookを参照のこと。