各端末タイプは、Emacsをその端末タイプで実行するときEmacsにロードされるLispライブラリーをもつことができます。termtypeという名前の端末タイプにたいして、そのライブラリーはterm/termtypeと呼ばれます(term-file-aliases
の連想配列(association
list)の中に(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
を実行します。端末固有ライブラリーの任意の部分をオーバーライドしたい場合や、ライブラリーをもたない端末の初期化を定義したい場合は、このフックにフック関数を追加します。フックを参照してください。