XTERM(1) — UNIX Programmer’s Manual
名称
xterm − X 用の端末エミュレータ
形式
xterm [−toolkitoption ...] [-option ...]
解説
xterm プログラムは、 X ウィンドウシステム用の端末エミュレータ です。 それは、ウィンドウシステムを直接使用することのできないプログラムの ために、 DEC VT102 および Tektronix 4014 コンパチブルの端末を提供します。 基礎をなすオペレーティングシステムが、端末のサイズ変更能力 (たとえば、 NEWS-OS Releae 3.X (4.3bsd) から派生したシステム中の SIGWINCH シグナル) をサポートする場合、 xterm は、その機能を使用して、 ウィンドウをサイズ変更するときは必ずそのウィンドウ上で動作している プログラムに通知します。
VT102 および Tektronix 4014 の端末はそれぞれ、ひとつのウィンドウでは テキストを編集し、別のウィンドウでは図形を見ることが同時に できるように、それぞれのウィンドウをもっています。 正しい画面の縦横比を維持するために、 Tektronix の図形は、 最大ボックスが、ウィンドウに適合する 4014 の画面縦横比に制限されます。 このボックスは、ウィンドウの上部左側に置かれます。
両方のウィンドウは同時に表示されますが、そのうちの 1つが、 キーボードからの入力および端末の出力を受けるための “アクティブ” ウィンドウとなります。 これは、テキストカーソルを含み、ポインタがウィンドウにあっても そのボーダが強調されているウィンドウです。 アクティブウィンドウは、エスケープシーケンス、 VT102 ウィンドウ中の “Modes” メニュー、および 4014 ウィンドウ中の “Tektronix” メニューを介して選ぶことができます。
オプション
xterm 端末エミュレータは、次にリストする追加オプションとともに、 すべての標準 X Toolkit のコマンド行オプションを受け付けます。 (オプションが ‘−’ ではなく ‘+’ で始まる場合は、そのオプションはそのデフォルト値に復元されます)
−help このオプションは、 xterm に、そのオプションを説明する丁寧な メッセージを表示させます。
−132 通常、 80 と 132 カラムモードを切り替える VT102 DECCOLM エスケープ シーケンスは無視されます。 このオプションは、 DECCOLM エスケープシーケンスを認識させ、 xterm ウィンドウは、適切にサイズ変更されます。
−ah このオプションは、 xterm が常にテキストカーソルとボーダを強調させることを示します。 デフォルトでは、 xterm は、フォーカスがなくなるか、ポインタがウィンドウから出ると必ず、 白ヌキのテキストカーソルを表示します。
+ah このオプションは、 xterm が、テキストカーソルの強調を行うことを示します。
−b number
このオプションは、ピクセル単位で、内部ボーダのサイズ ( 文字の外枠と ウィンドウのボーダ間の距離 ) を指定します。 デフォルト値は 2 です。
−cc characterclassrange:value[,...]
このオプションは、ワードで選択するのに使用するための、与えられた範囲に より示されるクラスを設定します。 文字クラスを指定している節を参照。
−cr color
このオプションは、テキストカーソル用に使用するための色を指定します。 デフォルトは、テキストに使用するのと同じフォアグラウンドカラーです。
−cu このオプションは、 xterm は、 more(1) プログラムにちょうどウィンドウ幅で、 タブで始まる行を不正確に表示している ( 先頭のタブは表示されない ) curses(3x) カーソルの動作パッケージのバグを回避することを示します。
+cu このオプションは、 xterm は、上述の curses(3x) バグを回避しないことを示します。
−e program [arguments ...]
このオプションは、 xterm ウィンドウ中で実行させるプログラム (およびそのコマンド行 (command line) 引数) を指定します。 また、 −T または −n のいずれもコマンド行に指定されていない 場合は、実行中のプログラムのベースネームをウィンドウのタイトルと アイコンに設定します。 これは、コマンド行上の最後のオプションでなければなりません。
−fb font このオプションは、ボールドデキストを表示するときに使用するフォントを 指定します。 このフォントは、ノーマルフォントと同じ高さと幅でなければなりません。 ノーマルフォントまたはボールドフォントのうちの 1つだけを指定する場合は、 ノーマルフォントとして使用され、ボールドフォントは、この フォントを重ね書きすることにより作られます。 デフォルトのボールドフォントは “vtbold.” です。
−j このオプションは、 xterm がジャンプスクロール ( 画面移動 ) を 行うようにすることを示します。 通常、テキストは一度に一行ずつスクロールされますが、このオプションに より、 xterm は、あまり大きく遅れないようにするために、一度に 複数行動くことができます。 これは、大量のテキスト全体を走査するとき xterm をとても高速に させるのでこのオプションを使用することをお勧めします。 “Modes” メニューと同様、スムーズなスクロールを可能および不可能にする ための VT100 のエスケープシーケンスを使用して、この機能をオンまたはオフ させることができます。
+j このオプションは、 xterm は、ジャンプスクロールをしないことを 示します。
−l このオプションは、 xterm は、すべての端末出力をスクリーンへ送る のと同様にログファイルへも送ることを示します。 このオプションを、 “xterm X11” メニューを使用して可能または不可能に することができます。
+l このオプションは、 xterm が、ログをとらないようにすることを 示します。
−lf filename
このオプションは、上述の出力ログが書き込まれるファイルの名前を 指定します。 file がパイプ記号 (|) で始まる場合は、残りの文字列は、パイプの エンドポイントとして用いられるコマンドであると仮定されます。 デフォルトのファイル名は、“XtermLog.XXXXX” (ここで XXXXX は、 xterm のプロセス ID) で、 それは xterm が起動されたディレクトリ上 (または、ログインウィンドウ の場合は、ユーザのホームディレクトリ上) に作成されます。
−ls このオプションは、 xterm ウィンドウ上で起動されるシェルを ログインシェルとすることを示します (すなわち、 argv[0] の最初の文字はダッシュであり、ユーザの .login または .profile を読込まなければならないということをシェルに 示します)。
+ls このオプションは、起動されるシェルはログインシェルであってはならない ということを示します ( すなわち、それは通常の “サブシェル” です ) 。
−mb このオプションは、 xterm は、ユーザが行の右端近くに入力するとき、 マージンベルを鳴らすことを示します。 このオプションは、 “Modes” メニューにより、オンおよびオフすることが できます。
+mb このオプションは、マージンベルを鳴らさないことを示します。
−ms color
このオプションは、ポインタカーソルに使用する色を指定します。 デフォルトは、フォアグラウンドの色です。
−nb number
このオプションは、マージンベルがイネーブルの場合鳴らされる、行の右端 からの文字数を指定します。 デフォルトは 10 です。
−rw このオプションは、リバースラップアラウンドを可能にします。 このオプションは、ある行の最も左のカラムから、前行の最も右のカラムに カーソルを戻します。 これは、長いシェルのコマンド行を編集するのにとても役立つので、これを 使用することをお勧めします。 このオプションは、 “Modes” メニューによりオンおよびオフすることが できます。
+rw このオプションは、リバースラップアラウンドを禁止します。
−s このオプションは、 xterm が非同期にスクロールすることを示します。 これは、スクリーンは、スクロール中は完全に最新に保たれないということを 意味します。 このオプションは、ネットワークの latencies ( 待ち時間 ) がとても高い ときに、 xterm をより速く動作させます。 そしてこのオプションは、一般的に、大規模なインターネットまたは多くの ゲートウェイを経由するとき役立ちます。
+s このオプションは、 xterm が同期的にスクロールすることを 示します。
−sb このオプションは、ウィンドウの上端からスクロールで見えなくなった数行を セーブし、スクロールバーでそれらの行が見えるよう表示することを 示します。 このオプションは、 “Modes” メニューにより、オンおよびオフすることが できます。
+sb このオプションは、スクロールバーを表示しないことを示します。
−sf このオプションは、 Sun Function Key のエスケープコードを、 ファンクションキー用に生成することを示します。
+sf このオプションは、標準のエスケープコードを、ファンクションキー用に 生成することを示します。
−si このオプションは、ウィンドウへの出力は、自動的にスクリーンの位置を スクロールリージョンの底部へ変えないことを示します。 このオプションは、 “Modes” メニューによりオンおよびオフすることが できます。
+si このオプションは、ウィンドウへの出力をスクロールリージョンの底部へ スクロールさせることを示します。
−sk このオプションは、前行のテキストを表示するためにスクロールバーを 使用している間のキー入力は、ウィンドウをスクロールリージョンの底部の 通常の位置に自動的に位置変えすることを示します。
+sk このオプションは、スクロールバーを使用している間のキー入力では、 ウィンドウは、位置替えをしないことを示します。
−sl number
このオプションは、スクリーンの上端からスクロールで見えなくなった行を セーブするときの行数を指定します。 デフォルトは 64 です。
−t このオプションは、 xterm は、 VT102 モードではなく、 Tektronix モードで始まるということを示します。 2つのウィンドウ間の切り替えは、 “Modes” メニューを使用して 行われます。
+t このオプションは、 xterm は VT102 モードで始まるということを 示します。
−tm string
このオプションは、それらの機能に設定される、次に文字が続く一連の端末 設定キーワードを指定します。 これは stty プログラムに似ています。 使用できるキーワードは次のものを含みます : intr、quit、erase、kill、eof、 eol、swtch、start、stop、brk、susp、dsusp、rprnt、flush、weras、 および lnext. 制御文字は ^char のように指定し (たとえば ^c または ^u)、^? は、 削除を示します。
−tn name
このオプションは、 TERM 環境変数に設定する端末タイプの名前を指定します。 この端末タイプは、 termcap(5) のデータベース中に存在し、 li# と co# エントリをもっている必要があります。
−ut このオプションは、 xterm は、記録をシステムのログ ファイル /etc/utmp に書込まないということを示します。
+ut このオプションは、 xterm は、記録をシステムのログ ファイル /etc/utmp に書込むということを示します。
−vb このオプションは、オーディブルベルではなくビジュアルベルを使用する ことを示します。 Control-G を受信したときに端末のベルを鳴らす代わりに、ウィンドウを フラッシュさせます。
+vb このオプションは、ビジュアルベルを使用しないことを示します。
−wf このオプションは、 xterm が、最初の端末サイズの設定と環境変数を 正確にするために、サブプロセスを起動する前に最初にウィンドウがマップ されるのを待つことを示します。 続いて起こる端末サイズの変更を認識するのはアプリケーションの仕事です。
+wf このオプションは、サブプロセスを起動する前にウィンドウがマップされる のを待たないことを示します。
−C このオプションは、このウィンドウがコンソール出力を受け取ることを 示します。 これは、すべてのシステム上でサポートされるわけではありません。
−Sccn このオプションは、スレーブモードで使用する仮想端末名の最後の 2 文字を 指定します。 これは xterm を既存のプログラムの入出力チャネルとして 使用することを可能にします。 また特殊アプリケーションで使用されることもあります。
次のコマンド行引数は、より古いバージョンとの互換性を保つために 提供されます。 X Toolkit は、同じタスクを行う標準オプションを提供するので、 それら (コマンド行引数) は、次のリリースではサポートされません。
%geom このオプションは、 Tektronix ウィンドウに適したサイズおよび位置を 指定します。 これは "∗tekGeometry" のリソースを指定するための短縮形です。
#geom このオプションは、アイコンウィンドウに適した位置を指定します。 これは "∗iconGeometry" のリソースを指定するための短縮形です。
−T string
このオプションは、 xterm ウィンドウのタイトルを指定します。 これは -title と同じです。
−n string
このオプションは、 xterm ウィンドウのアイコン名を指定します。 これは、 "∗iconName" のリソースを指定するための短縮形です。 なお、これは、 toolkit のオプション -name とは同じでないので 注意してください ( 以下参照 ) 。 デフォルトのアイコン名は、そのアプリケーション名です。
−r このオプションは、反転表示を、フォアグラウンドとバックグラウンドの色を 交換することによりシミュレートすることを示します。 これは、 −reversevideo または −rv と同じです。
−w number
このオプションは、ウィンドウを囲んでいるボーダの幅をピクセル単位で 指定します。 これは、 -borderwidth または -bw と同じです。
次の標準の X Toolkit のコマンド行引数は、 一般に xterm で共通に使用されます。
−bg color
このオプションは、ウィンドウのバックグラウンドの色を指定します。 デフォルトは “white( 白 )” です。
−bd color
このオプションは、ウィンドウのボーダの色を指定します。 デフォルトは “black(黒)” です。
−bw number
このオプションは、ウィンドウを囲んでいるボーダの幅をピクセル単位で 指定します。
−fg color
このオプションは、テキスト表示用の色を指定します。 デフォルトは “black(黒)” です。
−fn font
このオプションは、通常のテキストを表示するフォントを指定します。 デフォルトは、“fixed”(固定) です。
−name name
このオプションは、デフォルトの実行可能ファイル名ではなく、リソースが 得られるアプリケーション名を指定します。 name に “.” または “∗” 文字を含むことはできません。
−title string
このオプションは、ウィンドウタイトルの文字列を指定します。 この文字列は、ユーザがそう選択していれば、ウィンドウマネージャにより 表示されます。 デフォルトタイトルは、 -e オプションの後で指定したコマンド行で (もしあれば)、そうでない場合はアプリケーション名になります。
−rv このオプションは、反転表示を、フォアグラウンドとバックグラウンドの色を 交換することによりシミュレートすることを示します。
−geometry geometry
このオプションは、 VT102 ウィンドウに適したサイズと位置を指定します。 X(1) 参照。
−display display
このオプションは、接続する X サーバを指定します。 X(1) 参照。
−xrm resourcestring
このオプションは、使用するリソース文字列を指定します。 これは、特に、別々のコマンド行オプションのないリソースを設定するのに 役立ちます。
−iconic このオプションは、 xterm は、ウィンドウマネージャに通常の ウィンドウとしてではなく、アイコンとして始めることを要求することを 示します。
X のデフォルト
プログラムは、次のものと同様に、すべての核の X Toolkit リソース名と クラスを認識しています。
iconGeometry ( クラス IconGeometry)
アイコン化するとき、アプリケーションに適したサイズと位置を指定します。 これは必ずしもすべてのウィンドウマネージャに従うとは限りません。
termName ( クラス TermName)
TERM 環境変数に設定する端末タイプ名を指定します。
title ( クラス Title)
アプリケーションを表示するときに、ウィンドウマネージャが使用できる 文字列を指定します。
ttyModes ( クラス TtyModes)
端末設定のキーワードおよびそれらを結び付ける文字を含んだ文字列を 指定します。 使用可能なキーワードは次のものを含みます : intr、quit、 erase、kill、eof、eol、swtch、start、stop、brk、susp、dsusp、rprnt、 flush、weras、および lnext. 制御文字は、 ^char のように指定し (たとえば、 ^c または ^u)、 ^? は削除を示します。 これは、 xterm が起動するたびに stty を行うことなく、 デフォルト端末の設定を無効にするのにとても 役立ちます。
utmpInhibit ( クラス UtmpInhibit)
xterm はユーザ端末を /etc/utmp ファイルに記録しようとするか 否かを指定します。
sunFunctionKeys ( クラス SunFunctionKeys)
Sun Function Key のエスケープコードは、標準エスケープシーケンスではなく ファンクションキー用に生成するか否かを指定します。
次のリソースが、 “vt100” のウィジェット ( クラス “VT100”) の一部 として指定されます。
allowSendEvents ( クラス AllowSendEvents)
合成キーおよびボタンイベント (X プロトコルの SendEvent リクエストにより 生成される ) を、解釈するのか放棄するのかを指定します。 デフォルトは、 “偽 (false)” で、それらを放棄します。 なお、そのようなイベントを許すことで、とても大きなセキュリティホールを 作成することができます。
alwaysHighlight ( クラス AlwaysHighlight)
xterm は、常に強調されているテキストカーソルを表示するかどうかを 指定します。 デフォルトでは、ポインタがウィンドウ以外に移動したとき、または ウィンドウが入力フォーカスを失ったときに必ず、白ヌキのテキスト カーソルが表示されます。
font ( クラス Font)
ノーマルフォント名を指定します。デフォルトは “vtsingle” です。
boldFont ( クラス Font)
ボールドフォント名を指定します。デフォルトは “vtbold” です。
c132 ( クラス C132)
VT102 DECCOLM エスケープシーケンスが使用できるか否かを指定します。 デフォルトは “偽 ” です。
charClass ( クラス CharClass)
形式 [low-]high:value の文字クラスバインディングの コンマで区切られたリストを指定します。 これらは、カット / ペーストを行うときどの文字セットを同一に扱うかを 決定するときに使用します。 文字クラス指定の節を参照。
curses ( クラス Curses)
curses(3x) の最終のカラムのバグを回避するか否かを指定します。 デフォルトは “ 偽 ” です。
background ( クラス Background)
ウィンドウのバックグラウンドの色を指定します。 デフォルトは “white ( 白 ) ” です。
foreground ( クラス Foreground)
ウィンドウのテキストの色を指定します。 インスタンス名ではなくクラス名を設定すると、一般に "テキスト" の色に使用されるすべての色を容易に変えることができます。 デフォルトは “black ( 黒 ) ” です。
cursorColor ( クラス Foreground)
テキストカーソルの色を指定します。デフォルトは “black ( 黒 ) ” です。
geometry ( クラス Geometry)
VT102 ウィンドウに適したサイズおよび位置を指定します。
tekGeometry ( クラス Geometry)
Tektronix ウィンドウに適したサイズおよび位置を指定します。
internalBorder ( クラス BorderWidth)
文字とウィンドウボーダ間のピクセル数を指定します。 デフォルトは 2 です。
jumpScroll ( クラス JumpScroll)
ジャンプスクロールを行うかどうかを指定します。 デフォルトは “ 偽 ” です。
logFile ( クラス Logfile)
端末セッションのログを入れるファイル名を指定します。 デフォルトは、 “XtermLog.XXXXX” ( ここで、 XXXXX は、 xterm のプロセス ID です ) 。
logging ( クラス Logging)
端末セッションのログをとるか否かを指定します。 デフォルトは “ 偽 ” です。
logInhibit ( クラス LogInhibit)
端末セッションのログとりを禁止するか否かを指定します。 デフォルトは “ 偽 ” です。
loginShell ( クラス LoginShell)
ウィンドウ内で動作するシェルをログインシェルとして起動させるか否かを 指定します。 デフォルトは “ 偽 ” です。
marginBell ( クラス MarginBell)
ユーザが右マージンの近くで入力するとき、ベルを鳴らすか否かを 指定します。デフォルトは “ 偽 ” です。
multiScroll ( クラス MultiScroll)
非同期のスクロールを許可するか否かを指定します。 デフォルトは “ 偽 ” です。
nMarginBell ( クラス Column)
マージンベルを鳴らす設定をしたとき、鳴らす位置を右マージンからの文字数で 指定します。デフォルトは “ 偽 ” です。
pointerColor ( クラス Foreground)
ポインタの色を指定します。デフォルトは “black ( 黒 )” です。
pointerShape ( クラス Cursor)
ポインタの形名を指定します。デフォルトは “xterm” です。
reverseVideo ( クラス ReverseVideo)
反転表示をシミュレートするか否かを指定します。 デフォルトは “ 偽 ” です。
reverseWrap ( クラス ReverseWrap)
リバースラップアラウンドを可能にするか否かを指定します。 デフォルトは “ 偽 ” です。
saveLines ( クラス SaveLines)
スクロールバーが表示されているとき ( オンにされたとき ) 、 スクリーン上端を越えてセーブする行数を指定します。 デフォルトは 64 です。
scrollBar ( クラス ScrollBar)
スクロールバーを表示するか否かを指定します。 デフォルトは “ 偽 ” です。
scrollInput ( クラス ScrollCond)
端末への出力で、自動的にスクロールバーがスクロールリージョンの底部に 移動するようにするか否かを指定します。 デフォルトは “ 真 ” です。
scrollKey ( クラス ScrollCond)
キーを押すことにより、自動的にスクロールバーをスクロールリージョンの 底部に移動するか否かを指定します。 デフォルトは “ 偽 ” です。
scrollLines ( クラス ScrollLines)
scroll-back と scroll-forw がデフォルトとして使用する行数を指定します。 デフォルトは 1 です。
signalInhibit ( クラス SignalInhibit)
シグナルを xterm へ送るための “xterm X11” メニューへの エントリを禁止するか否かを指定します。 デフォルトは “ 偽 ” です。
tekInhibit ( クラス TekInhibit)
Tektronix モードを禁止するか否かを指定します。 デフォルトは “ 偽 ” です。
tekSmall ( クラス TekSmall)
Tektronix モードウィンドウは、明示的なジオメトリが何も与えられていない 場合に、その一番小さなサイズで始めるか否かを指定します。 これは、小さなスクリーンのディスプレイ上で xterm を起動するときに 役立ちます。デフォルトは “ 偽 ” です。
tekStartup ( クラス TekStartup)
xterm を、 Tektronix モードで始めるか否かを指定します。 デフォルトは “ 偽 ” です。
titeInhibit ( クラス TiteInhibit)
xterm が、 TERMCAP 文字列から、 ti または te の termcap エントリ ( 多くのスクリーン向けのプログラムのスタートアップ
(startup) 上の代替スクリーン間を切り替えるために使用される ) を 削除するか否かを指定します。
translations ( クラス Translations)
メニュー、選択、 “ プログラムされた文字列 ” などのためのキーと ボタンのバインディングを指定します。 以下の KEY/BUTTON BINDINGS を参照。
visualBell ( クラス VisualBell)
Control-G を受信したとき、オーディブルベルの代わりにビジュアルベル (すなわち、フラッシング) を使用するか否かを指定します。 デフォルトは “ 偽 ” です。
waitForMap ( クラス WaitForMap)
xterm は、サブプロセスを始める前に、最初のウィンドウマップを もつか否かを指定します。 デフォルトは “ 偽 ” です。
次のリソースは、 “tek4014” ウィジェット (クラス “Tek4014”) の一部として指定されます。
width ( クラス Width)
Tektronix ウィンドウの幅をピクセル単位で指定します。
height ( クラス Height)
Tektronix ウィンドウの高さをピクセル単位で指定します。
次のリソースは、 “ メニュー ” ウィジェットの一部として指定されます。
menuBorder ( クラス MenuBorder)
メニューを囲んでいるボーダのサイズをピクセル単位で指定します。 デフォルトは 2 です。
menuFont ( クラス Font)
メニュー項目を表示するために使用するフォント名を指定します。
menuPad ( クラス MenuPad)
メニュー項目とメニューボーダ間のピクセル数を指定します。 デフォルトは 3 です。
次のリソースは、 Athena Scrollbar ウィジェット用に指定するとき 役立ちます。
thickness ( クラス Thickness)
スクロールバーの幅をピクセル単位で指定します。
background ( クラス Background)
スクロールバーのバックグラウンドの色を指定します。
foreground ( クラス Foreground)
スクロールバーのフォアグラウンドの色を指定します。 スクロールバーの “thumb” は、フォアグラウンドとバックグラウンドの 色ピクセルを交替する簡単なチェッカーボードのパターンです。
エミュレーション
VT102 のエミュレーションはかなり完成していますが、ブリンク文字属性も、 倍の幅と倍のサイズの文字セットもサポートしません。 xterm とともに働く Termcap(5) エントリは、 “xterm”、“vt102”、“vt100” および “ansi” を含み、 xterm は、自動的にこれらのエントリを termcap ファイルからこの順序で検索し、 “TERM” および “TERMCAP” 環境変数を設定します。
特別な xterm 機能 ( ログとりのような ) の多くは、標準の VT102 のエスケープシーケンス と異なるエスケープシーケンスのセットにより、プログラムの制御下で、 変更されます。 ( “Xterm Control Sequences” を参照)。
Tektronix 4014 のエミュレーションも、かなりよくできています。 4 つの 異なるフォントサイズと 5 つの異なる行タイプがサポートされています。 Tektronix のテキストとグラフィックスコマンドは、 xterm により内部に記録され、 COPY エスケープシーケンスを送ることにより、 (または、 Tektronix メニューにより ; 以降参照) ファイルに書込まれます。 そのファイル名は、 “COPYyy−MM−dd.hh:mm:ss” です。ここで、 yy、 MM、 dd、 hh、 mm 、 ss は、 COPY を実行するときの、年、月、日、時間、分、秒です (ファイルは、 xterm が起動されたディレクトリ内に作成されるか、ログイン xterm の場合はホームディレクトリに作成されます)。
ポインタの使用
一度、 VT102 ウィンドウが作成されると、 xterm によりテキストを選択でき、それを、同一または他のウィンドウ内に コピーすることができます。
選択機能は、ポインタボタンがモディファイアなしで使用されるとき、 および、 “ シフト ” キー付きで使用されるときに、呼び出されます。 以降で説明する機能の、キーおよびボタンへの割当ては、 リソースデータベースを介して変更されます。 以降の KEY/BUTTON BINDINGS を参照。
ポインタボタン 1 ( 通常は左側 ) は、テキストをカットバッファに セーブします。 カーソルをテキストの始めに移動し、ボタンを押し続けながらカーソルを カットしたいリージョンの終わりまで動かしてボタンを離します。 選択されたテキストは強調されて、グローバルカットバッファにセーブされ、 ボタンが離されると PRIMARY セレクションを行います。 二重クリックは単語を選択します。 三重クリックは、行を選択します。 四重クリックは、文字に戻ります。 複数クリックは、ボタンを離してから再び押す間での時間により決められる ので、セレクションの途中でセレクションユニットを変えることができます。 キー / ボタンのバインディングが X セレクションを行うように指定する 場合は、 xterm は、セレクションの所有者である限りは、 選択したテキストを強調したままにします。
ポインタボタン 2 ( 通常は真中 ) は、もしあれば PRIMARY セレクションから テキストを ‘ 入力 ’ (ペースト) します。 そうでない場合は、カットバッファからキーボード入力として挿入します。
ポインタボタン 3 ( 通常は右側 ) は、現在のセレクションを拡張します。 (一般性を失うことなしに、すなわち、このパラグラフの残りの部分の どこででも、それより “ 右 ” および “ 左 ” 側をスワップできます) 。 左端よりは右端に近い位置でボタンが押された場合は、そのセレクションの 右端が拡張 / 縮小されます。 左端を行き過ぎたセレクションを縮小する場合は、 xterm は、本当に左端を意味すると仮定し、オリジナルセレクションを復元して そのセレクションの左端を拡張 / 縮小します。 エクステンションは、最後のセレクションまたはエクステンションを実行した ときのセレクションユニットモードで始まります。 すなわち、サイクリックに複数クリックを繰り返すことができます。
復帰改行を引きずらせずにいくつかのテキストをカットおよびペーストする ことにより、異なるウィンドウの複数の場所からテキストを取り出し、 シェルへのコマンドを形成できます。 たとえば、プログラムからの出力を受け取り、好みのエディタに挿入することが できます。 カットバッファは異なるアプリケーション間でグローバルに共有されるので、 内容を知っている ‘ ファイル ’ として認識しなければなりません。 端末エミュレータや他のテキストプログラムは、それを、テキストファイルと みなします。 すなわち、テキストは、復帰改行により区切られます。
スクロールリージョンは、実際にセーブされているテキストの量と相対する 現在のウィンドウに表示されている ( 強調されている ) テキストの位置 および量を表示します。 テキストがセーブされるにつれて ( 最大量まで ) 、強調領域のサイズは 縮小されます。
スクロールリージョン内のポインタで、ボタン 1 をクリックすると、 近接ラインを、表示ウィンドウの最上部へ移動します。
ボタン 3 をクリックすると、表示ウィンドウの最上行をポインタの位置まで 移動します。
ボタン 2 をクリックすると、表示ウィンドウを、スクロールバー内の ポインタの位置に対応するセーブされたテキストの位置に移動します。
VT102 ウィンドウと異なり、 Tektronix のウィンドウは、テキストをコピー することを許しません。 Tektronix ウィンドウは、 Tektronix GIN モードを許し、このモードで、 カーソルは矢印から十字記号 ( クロス ) に変更されます。 キーを押すことにより、そのキーおよびクロスカーソルの現在の座標を 送ります。 ボタン 1、2、3 を押すと、それぞれ文字 ‘l’、‘m’、および ‘r’ が 返されます。 ポインタボタンが押されたとき、 ‘ シフト ’ キーを押した場合は、 それに対応する大文字が送られます。 キーとポインタボタンを識別するために、上位ビットの文字を設定します (しかし、これは端末モードが RAW でない限りは、通常ははずされるビット です。詳細については、 tty(4) を参照)。
メニュー
xterm は、次のように命名された 3 つの異なるメニュー、 xterm、 Modes、 および Tektronix をもっています。 メニューはそれぞれ、キーとボタンが押された正しい組合わせのもとで、 ポップアップされます。 ほとんどのメニューは 2 つのセクションに分けられます。 そのセクションは水平ライン ( 横線 ) で区切られます。 最上部は、変更できる様々なモードを含みます。 チェックマークは、現在アクティブであるモードの次に現れます。 これらのモードのうちのひとつを選ぶと、その状態がトグルされます。 メニューの底部は、コマンドエントリです。 これらのうちのひとつを選ぶと、指示された機能が実行されます。
xterm メニューは、ウィンドウ内で “ コントロール ” キーとポインタボタン 1 が 押されたとき、ポップアップします。 モードセクションは VT102 と Tektronix ウィンドウの両方に使用される項目を 含みます。 Secure Keyboard モードは、パスワードまたは他のセンシティブなデータをタイプするときに 使用されます。 後述の セキュリティ を参照。 メニューのコマンドセクション内の注目すべきエントリは、 Continue、 Suspend、 Interrupt、 Hangup、 Terminate および Kill であり、それらは、SIGCONT、SIGTSTP、SIGINT、SIGHUP、 SIGTERM および SIGKILL 信号をそれぞれ、 xterm プログラム下で動作しているプロセスのプロセスグループ ( 通常はシェル ) へ送ります。 Continue 機能は、特に、ユーザがたまたまプロセスを停止させる Control-Z を入力して しまった場合に役に立ちます。
Modes メニューは、 VT102 エミュレーションの様々なモードを設定します。 そして、それは VT102 ウィンドウ内で “ コントロール ” キーとポインタ ボタン 2 が押されたときに、ポップアップされます。 このメニューのコマンドセクションでは、ソフトリセットの入力でスクロール リージョンをリセットします。 これは、あるプログラムがスクロールリージョンを誤って設定したままにして あるとき便利です ( VMS または TOPS-20 を使用しているときよく起こる 問題です ) 。 フルリセットの入力は、スクリーンをクリアし、タブを 8 カラムごとに リセットし、端末モード ( ラップおよびスムーズスクロールのような ) を、 xterm がコマンド行オプションを処理し終わったすぐ後の初期状態にリセット します。 Tektronix メニューは、 Tektronix エミュレーションの様々なモードを設定し、 Tektronix ウィンドウで “ コントロール ” キーとポインタボタン 2 が 押されたときポップアップされます。 現在のフォントサイズが、メニューのモードセクションでチェックされます。 コマンドセクション中の PAGE エントリは、 Tektronix ウィンドウをクリアします。
セキュリティ
X の環境は、それぞれのセキュリティ意識により異なります。 MIT が提供するサーバは、ホストベースのメカニズムを使用して、サーバへの アクセスを制御します (xhost(1) 参照)。 ホストのアクセスを enable にした場合や他のユーザもそのホスト上の クライアントを使用できる場合は、誰かがアクティビティを検索するために、 X プロトコルの基本サービスを使用しようとするアプリケーションを 実行しようとするか、キーボードから入力したすべてのトランスクリプトを 潜在的に検索しようとする可能性があります。 これは、パスワードまたは他のセンシティブなデータを入力するときに、 特に気がかりです。 この問題に対する一番よい解決法は、業界が、規格で公認されている、必要な オペレーティングシステムのサポートのあるメカニズムを選び、これを X プロトコルへ組み込むことです ( X プロトコルはすでにそのような メカニズムを処理するように設計されています ) 。 その間に、パスワードは、最も一般的に、 xterm ウィンドウ内で 実行されているものに入力されるので、簡単なメカニズムが、 xterm でのキーボード入力を保護するためにあります。
xterm メニュー ( 上述の MENUS 参照 ) は、 Secure Keyboard エントリを含みます。 それは、 enable のとき、すべてのキーボード入力は xterm へだけ伝えられる (GrabKeyboard プロトコルリクエストを 使用して ) ことを保証します。 アプリケーションがパスワード( または他のセンシティブなデータ ) を 促してくるときは、メニューを使用して Secure Keyboard を enable にし、データを入力することができます。 それから、再びメニューを使用して Secure Keyboard を disable にします。 一度にキーボードを保証できるのはひとつの X クライアントだけなので、 Secure Keyboard を enable にしようとしても、失敗するかも しれません。 この場合、ベルが鳴ります。 Secure Keyboard が成功した場合は、 フォアグラウンドとバックグラウンドの色が入れ替わります (Modes メニューの 反転表示 エントリを選択したように) 。 secure モードを終えると、再びそれらの色は入れ替わります。 色が入れ替わらない場合、疑う必要があります。 実行中のアプリケーションが、パスワードを要求する前にプロンプトを 表示する場合は、確かにプロンプトが表示される前に secure モードを 入力し、そのプロンプトが正しく ( 新しい色で ) 表示されているかを確かめ、 だまされる可能性を最小にします。 再びそのメニューを表示して、チェックマークがエントリの次にあることを 確かめることができます。
Secure Keyboard モードは、 xterm ウィンドウがアイコン化される場合 (または、そうでない場合はアンマップされる場合) 、または、 Secure Keyboard モードにある間に、ウィンドウマネージャ ( これは ウィンドウのまわりにタイトルバーまたは他のオプションを置く ) の再生を 始める場合、自動的に disable になります (これは、簡単には克服できない X プロトコルの機能です)。 この状態が生じた場合、フォアグラウンドとバックグラウンドの色は 切り返され、警告のためのベルが鳴ります。
文字クラス
真中のマウスボタンをすばやく続けて 2 回クリックすることにより、 同一クラスのすべての文字 ( たとえば、文字、余白、句読 ) を、選択する ことができます。 何を選ぶかは、それぞれの人がそれぞれの好みで決めるので (たとえば、ファイル名は全体または別々のサブネームとして選択される)、 デフォルトのマッピングは、 charClass ( クラス CharClass) リソースを使用することによりオーバーライドされます。
このリソースは単に range:value ペアのリストです。 ここで range は単一の番号であるか、 0 から 127 までの low−high のいずれかであり、それは文字の ASCII コード または設定する文字に対応します。 たとえ、デフォルトのテーブルが、そのセット内に生じる最初の文字の 文字ナンバーを使用するとしても、 value は任意です。
デフォルトテーブルは次のとおり。
static int charClass[128] = {
/∗ NUL SOH STX ETX EOT ENQ ACK BEL ∗/
32, 1, 1, 1, 1, 1, 1, 1,
/∗ BS HT NL VT NP CR SO SI ∗/
1, 32, 1, 1, 1, 1, 1, 1,
/∗ DLE DC1 DC2 DC3 DC4 NAK SYN ETB ∗/
1, 1, 1, 1, 1, 1, 1, 1,
/∗ CAN EM SUB ESC FS GS RS US ∗/
1, 1, 1, 1, 1, 1, 1, 1,
/∗ SP ! " # $ % & ’ ∗/
32, 33, 34, 35, 36, 37, 38, 39,
/∗ ( ) ∗ + , − . / ∗/
40, 41, 42, 43, 44, 45, 46, 47,
/∗ 0 1 2 3 4 5 6 7 ∗/
48, 48, 48, 48, 48, 48, 48, 48,
/∗ 8 9 : ; < = > ? ∗/
48, 48, 58, 59, 60, 61, 62, 63,
/∗ @ A B C D E F G ∗/
64, 48, 48, 48, 48, 48, 48, 48,
/∗ H I J K L M N O ∗/
48, 48, 48, 48, 48, 48, 48, 48,
/∗ P Q R S T U V W ∗/
48, 48, 48, 48, 48, 48, 48, 48,
/∗ X Y Z [ \ ] ^ _ ∗/
48, 48, 48, 91, 92, 93, 94, 48,
/∗ ‘ a b c d e f g ∗/
96, 48, 48, 48, 48, 48, 48, 48,
/∗ h i j k l m n o ∗/
48, 48, 48, 48, 48, 48, 48, 48,
/∗ p q r s t u v w ∗/
48, 48, 48, 48, 48, 48, 48, 48,
/∗ x y z { | } ~ DEL ∗/
48, 48, 48, 123, 124, 125, 126, 1};
たとえば、文字列 “33:48,37:48,45-47:48,64:48” は、感嘆符、パーセント 記号、ダッシュ、ピリオド、スラッシュおよび & 文字は、文字や数字と同じ 方法で扱われることを示します。 これは、電子メールのアドレスおよび Unix のファイル名をカットしたり、 ペーストするのにとても役立ちます。
キーのトランスレーション
vt100 または tek4014 ウィジェットのトランスレーションを変更する ことにより、キー ( または、一連のキー ) を入力用の任意文字列に リバインドできます。 キーとボタンイベント以外のイベントのトランスレーションを変更することは 予想できないので、予測できない動きが生じます。
キートランスレーションに利用できるアクションは次のとおりです。
secure() Secure Keyboard モードをトグルします。 SECURITY を参照。
insert-seven-bit()
通常の方法でキーを処理します。すなわち、キーボードマッピングテーブルに おける keysym に対応する ISO Latin 1 文字コードを入力ストリームに挿入します。
insert-eight-bit()
insert-seven-bit() と同じキーを処理しますが、 8 番目のビットを セットさせます。
string(string) キーまたはキーシーケンスを string 値にリバインドします。 すなわち、 string 引数を入力ストリームへ挿入します。 string が余白、または英数字でない文字を含む場合は、引用符は必要です。 string 引数が文字 “0x” で始まる場合は、それは 16 進文字の定数として 解釈され、それに対応する文字は、通常の方法で送られます。
keymap(name) keymap アクションは、動的に新しいトランスレーションテーブルを 定義するために使用するリソースを名付ける string 引数 1 つをとります。 そのリソースの名前は、文字列 “Keymap” を name に付加 することにより得られます。キーマップ名 None は、 オリジナルのトランスレーションテーブル (最初のテーブル、スタックは維持されません) を復元します。 大文字か小文字かは重要です。
insert-selection(name[,name]...)
既存の最初の ( 最も左側 ) 名前のついたセレクションの値または空でない カットバッファを検索し、その値を入力ストリームへ挿入します。 Name は、何らかのセレクションの名前です。 たとえば、 PRIMARY または SECONDARY、 または、 カットバッファ名 : CUT_BUFFER0, ..., CUT_BUFFER7. 大文字か小文字かは重要です。
たとえば、次のバインディングはデバッギングセッションに有用です。
∗VT100.Translations: #override <Key>F13: keymap(dbx)
∗VT100.dbxKeymap.translations: \
<Key>F14: keymap(None) \n\
<Key>F17: string("next") string(0x0d) \n\
<Key>F18: string("step") string(0x0d) \n\
<Key>F19: string("continue") string(0x0d) \n\
<Key>F20: string("print ") insert-selection(PRIMARY, CUT_BUFFER0)
キーとボタンとバインディング
VT100 ウィジェット内では、テキストの選択、テキストのペースト、および メニュー起動用のキーとボタンのバインディングは、トランスレーション バインディングにより制御されます。 キートランスレーション の項でリストされたアクションの他にも 次のアクションが利用できます。
mode-menu() どのボタンを押すかにより、 2 つのモードメニューのうちの 1つを報告します。
select-start() 以前に選択されたテキストは選ばず、新しいテキストのセレクションを 始めます。
select-extend() 前に開始した位置からテキストのセレクションを続けます。
start-extend() 最も遠い ( 左または右 ) 端から、セレクションの拡張を始めます。
select-end(name[,name]...)
テキストのセレクションを終了します。 Name は、セレクションの 名前、またはテキストがコピーされるカットバッファの名前です。 xterm は、名付けられたすべてのセレクションの所有権を主張し、 そのテキストをそれぞれのカットバッファにコピーします。 大文字か小文字かは重要です。
ignore() エラーにならず、キーまたはボタンイベントを棄てます。
bell([volume]) ベースボリュームの上 / 下の指定されたボリューム増分で、ベルを 鳴らします。
scroll-back([number,[units]])
ウィンドウを指示された単位数だけ ( ページ、 半ページ、 行、 または ピクセル) 後方へスクロール します。 単位 が指定されない場合は、 行 が仮定されます。 数 が指定されない場合は、 scrollLines リソースの値 (1 にデフォルト設定される) が使用されます。
scroll-forw([number,[units]])
ウィンドウを前方へスクロールします。引数は、 スクロールバック のものと同じです。
デフォルトバインディングは次のとおりです。
Shift <KeyPress> Prior:scroll-back(1,halfpage) \n\
Shift <KeyPress> Next:scroll-forw(1,halfpage) \n\
Shift <KeyPress> Select:select-start() \n\
Shift <KeyPress> Insert:insert-selection(PRIMARY, CUT_BUFFER0) \n\
~Meta<KeyPress>: insert-seven-bit() \n\
Meta<KeyPress:insert-eight-bit() \n\
Ctrl~Meta<Btn1Down>: mode-menu() \n\
~Meta<Btn1Down>: select-start() ~Meta <Btn1Motion>: select-extend() \n\
Ctrl~Meta<Btn2Down>: mode-menu() \n\
~Ctrl~Meta<Btn2Down>: ignore() \n\
~Meta<Btn2Up>:insert-selection(PRIMARY, CUT_BUFFER0) \n\
~Ctrl~Meta<Btn3Down>: start-extend() \n\
~Meta<Btn3Motion>: select-extend() \n\
~Meta<BtnUp>:select-end(PRIMARY, CUT_BUFFER0) \n\
<BtnDown>:bell(0)
その他の機能
xterm は、ポインタがウィンドウに入った ( 選択された ) とき、自動的にその ウィンドウのボーダとテキストカーソルを強調し、ポインタがウィンドウを 離れた ( 選択されない ) とき、強調を解除します。 そのウィンドウがフォーカスウィンドウである場合は、そのウィンドウは、 ポインタがどこにあろうとも強調されます。
VT102 モードでは、代替スクリーンバッファを活動化したり、活動を失わせる ためのエスケープシーケンスがあります。 それは、ウィンドウのディスプレイリージョンと同じサイズです。 活動化されたときは、現在のスクリーンはセーブされ、代替スクリーンと 取り替えられます。 ウィンドウの上端からスクロールされた行をセーブすることは、 通常のスクリーンが復元されない限りは、許されません。 xterm の termcap(5) エントリにより、ビジュアルなエディタ vi(1) を編集のために代替スクリーンに切り換えることができ、出口についての スクリーンを復元することができます。
VT102 または Tektronix モードのいずれかには、ウィンドウの名前を変更し、 新しいログファイル名を指定するためのエスケープシーケンスがあります。
環境変数
xterm は、作成したサイズウィンドウに正しい環境変数 “TERM” および “TERMCAP” を設定します。 また環境変数 “DISPLAY” を設定して、どのビットマップディスプレイ ターミナルを使用するのかを指定します。 環境変数 “WINDOWID” は、 xterm ウィンドウの X ウィンドウ ID 番号に設定されます。
関連事項
resize(1), X(1), pty(4), tty(4)
“Xterm Control Sequences”
バグ
xterm は、一度にあまりにも多くのテキストをペーストしようとすると、 永久に停止してしまいます。 xterm は、pty に対しては生産者と消費者の両方であり、デッドロックする 可能性があります。
可変幅のフォントは、合理的には操作できません。
このプログラムはさらに書き直す必要があります。 モジュール方式のセクションに分割されなければならないし、様々な エミュレータはお互いについて知らないウィジェットを完全に分離しなければ なりません。 理想的には、エミュレータウィジェットを捜して選択し、それらを単一制御の ウィジェットにはめ込むことができるのが望ましいことです。
ある他のクライアント (たとえばウィンドウマネージャ) に、ポインタを とられた場合は、フォーカスはなくなったと考えます。 プロトコルへの追加なしでは、これをよりよく処理することは難しいです。
ログファイル名と COPY ファイル名のエントリを可能にするための ダイアログボックスが必要です。
多くのオプションは、 xterm が起動してしまった後ではリセットできません。
Tek ウィジェットは、キーとボタンのリバインディングをサポートしません。
このマニュアルのページはとても長いです。 標準外のエスケープシーケンスをすべて定義している個々のユーザマニュアル が必要です。
すべてのプログラムは、 X を直接使用するように書かれなければなりません。 そうすればこのプログラムを削除できます。
版権
Copyright 1988, Massachusetts Institute of Technology.
権利と許可の声明文については、 X(1) を参照のこと。
著者
とてもたくさんの著者がいます。次のとおり。 Loretta Guarino Reid (DEC-UEG-WSL), Joel McCormack (DEC-UEG-WSL), Terry Weissman (DEC-UEG-WSL), Edward Moy (Berkeley), Ralph R. Swick (MIT-Athena), Mark Vandevoorde (MIT-Athena), Bob McNamara (DEC-MAD), Jim Gettys (MIT-Athena), Bob Scheifler (MIT X Consortium), Doug Mink (SAO), Steve Pitschke (Stellar), Ron Newman (MIT-Athena), Jim Fulton (MIT X Consortium), Dave Serisky (HP)
NEWS-OSRelease 3.3