テキスト端末エミュレーターでサブシェルを実行するには、M-x termを使用します。これは*terminal*という名前のバッファーを作成(または再利用)して、キーボードを入力とするサブシェルを実行し、出力はそのバッファーになります。
端末エミュレーターは、2つの入力モードをもつTermモードを使用します。lineモード(line mode)では、Termは基本的にShellモードのように振る舞います(Shellモードを参照してください)。charモード(char mode)では、文字は端末入力として直接サブシェルに送られます。唯一の例外は端末エスケープ文字で、デフォルトはC-cです(Termモードを参照してください)。入力をエコーするのはサブシェルの役目です。サブシェルからの端末出力は、バッファーのポイントの後に送られます。
(Emacsのような)いくつかのプログラムでは、端末スクリーンで詳細に外観を制御する必要があります。これらのプログラムは特別な制御コードを送ることによりこれを行ないます。Termモードは、xterm
を含むほとんどの現代的な端末で使用できる、ANSI標準のVT100スタイルのエスケープシーケンスを認識・処理します(したがって、実際にEmacsのTermウィンドウ内でEmacsを実行することもできます)。
term
フェイスは、端末エミュレーターのテキストのデフォルトの外観を指定します(デフォルトはdefault
フェイスと同じ外観です)。端末の制御コードがテキストの外観を変更するために使用される場合、これらは端末エミュレーター内で、フェイスterm-color-black
、term-color-red
、term-color-green
、term-color-yellow
、term-color-blue
、term-color-magenta
、term-color-cyan
、term-color-white
、term-color-underline
、term-color-bold
で表示されます。テキストのフェイスを参照してください。
シリアルポートに接続されたデバイスと通信するために、Termモードを使うこともできます。シリアル端末を参照してください。
サブシェルをロードするために使用されるファイル名は、Shellモードと同じ方法で決定されます。複数の端末エミュレーターを作成するには、Shellモードと同じように、M-x rename-uniquelyを使って、バッファー*terminal*を違う名前にリネームします。
Shellモードとは異なり、Termモードは入力を調べてカレントディレクトリーを追跡することはしません。しかし、いくつかのシェルはカレントディレクトリーをTermに告げることができます。これはbash
のバージョン1.15以降では自動的に行なわれます。