各ターミナルタイプには、そのタイプのターミナルでEmacsが起動した際にロードされるLispライブラリを設定できます。termtypeという名前のターミナルタイプの場合、ライブラリはterm/termtypeと呼ばれます。(term-file-aliasesの関連付けリストに(termtype . alias)という形式のエントリがある場合、Emacsはtermtypeの代わりにaliasを使用します。)ライブラリは、通常通りload-pathディレクトリを検索し、接尾辞‘.elc’および‘.el’を試すことで探し出されます。通常、多くのEmacsライブラリが格納されているディレクトリのサブディレクトリtermに配置されています。
端末固有ライブラリの一般的な目的は、端末のファンクションキーで使用されるエスケープシーケンスを、input-decode-mapを用いてより意味のある名称にマッピングすることです。その実装例については、ファイル
term/lk201.el
を参照してください。多くのファンクションキーはTermcapデータベースの情報に基づいて自動的にマッピングされるため、端末固有ライブラリがマッピングする必要があるのは、Termcapで指定されていないファンクションキーのみです。
端末タイプにハイフンが含まれる場合、ライブラリ名の選択において重要となるのは、名前の最初のハイフンより前の部分のみです。したがって、端末タイプ
‘aaa-48’ と ‘aaa-30-rv’ は、ともにライブラリ term/aaa を使用します。ライブラリ内のコードでは、(getenv
"TERM") を使用して端末タイプの完全な名前を取得できます。
ライブラリ名は、変数 term-file-prefix
の値とターミナルタイプを連結して構成されます。.emacs ファイルで term-file-prefix を nil
に設定することで、ターミナル固有のライブラリの読み込みを防ぐことができます。
Emacsは、.emacsファイルとターミナル固有のライブラリの両方が読み込まれた後、初期化の最後にフック tty-setup-hook
を実行します。ターミナル固有のライブラリの一部を上書きしたい場合や、ライブラリを持たないターミナルの初期化を定義したい場合は、このフックにフック関数を追加してください。フックを参照してください。