OSDN Git Service

(split) DP: release pages (catch up to 3.50).
[linuxjm/LDP_man-pages.git] / release / man4 / console_codes.4
1 .\" t
2 .\" Copyright (c) 1996 Andries Brouwer <aeb@cwi.nl>, Mon Oct 31 22:13:04 1996
3 .\"
4 .\" %%%LICENSE_START(GPLv2+_DOC_ONEPARA)
5 .\" This is free documentation; you can redistribute it and/or
6 .\" modify it under the terms of the GNU General Public License as
7 .\" published by the Free Software Foundation; either version 2 of
8 .\" the License, or (at your option) any later version.
9 .\" %%%LICENSE_END
10 .\"
11 .\" This is combined from many sources.
12 .\" For Linux, the definitive source is of course console.c.
13 .\" About vt100-like escape sequences in general there are
14 .\" the ISO 6429 and ISO 2022 norms, the descriptions of
15 .\" an actual vt100, and the xterm docs (ctlseqs.ms).
16 .\" Substantial portions of this text are derived from a write-up
17 .\" by Eric S. Raymond <esr@thyrsus.com>.
18 .\"
19 .\" Tiny correction, aeb, 961107.
20 .\"
21 .\" 2006-05-27, Several corrections - Thomas E. Dickey
22 .\"
23 .\"*******************************************************************
24 .\"
25 .\" This file was generated with po4a. Translate the source file.
26 .\"
27 .\"*******************************************************************
28 .TH CONSOLE_CODES 4 2012\-08\-05 Linux "Linux Programmer's Manual"
29 .SH 名前
30 console_codes \- Linux コンソールのエスケープシーケンスとコントロール シーケンス
31 .SH 説明
32 Linux コンソールは VT102 と ECMA\-48/ISO6429/ANSI X3.64 端末コンソールの
33 サブセットに、カラーパレットや文字集合のマッピングなどを変更する プライベートモードシーケンスを加えて実装されている。 以下の表では、機能の
34 ECMA\-48 または DEC のニーモニクス(DECで始まれば後者)を 2 番目の桁に記す。 ニーモニクスのないものは ECMA\-48 でも
35 VT102 でもないものである。
36 .LP
37 すべての出力作業が終って、実際に印字するために文字のストリームが コンソールドライバーに届いた時、最初に行なわれるのが、処理用コードから
38 印字用のコードへの変換である。
39 .LP
40 もし、コンソールが UTF\-8 モードなら、入って来たバイト(byte)は 16 ビットの Unicode に組み立てられる。そうでなければ、それぞれの
41 バイトは現在の(各バイトを Unicode の値に変換する)マッピングテーブルに
42 従って変換される。これに関しては下のキャラクターセット(Charcter Sets)  節を参照のこと。
43 .LP
44 通常、Unicode の値はフォントインデックス(font index) に変換され、 ビデオメモリに蓄えられる。そして(ビデオ ROM
45 中に見付けられる)  対応するグリフ(glyph)が画面に現れる。 Unicode を用いると、(PC 互換機の設計では) 512 の異なった
46 グリフを同時に利用できるようになる。
47 .LP
48 現在の Unicode の値がコントロール文字であるかエスケープシーケンスを 処理している時には、その値は特別に扱われる。
49 フォントのインデックスに変換されてグリフとして表示される代わりに、カーソルの 移動やその他のコントロール機能を実行させる。
50 詳しいことは、後述の「LINUX コンソールコントロール」のセクションを参照のこと。
51 .LP
52 一般に端末コントロールコードをプログラム中に直接記述するのは 良いことではない。 Linuxでは、端末において実現可能な操作のデータベースである
53 \fBterminfo\fP(5)  をサポートしている。 コンソールエスケープシーケンスをわざわざ入力するよりも、ほとんどの場合 terminfo
54 の情報を参照する \fBncurses\fP(3), \fBtput\fP(1), や \fBreset\fP(1)
55 などのスクリーンライブラリやユーティリティーを使いたいと思うであろう。
56 .SS "Linux console controls"
57 この章では Linux コンソールにおいて特殊な機能(つまり、現在のカーソル位置に
58 文字のイメージを印字する以外のこと)を起こさせる全てのコントロール文字と エスケープシーケンスについて述べる。
59 .PP
60 \fBコントロール文字\fP
61 .sp
62 コントロール文字とは、(マッピングテーブルによる変換前のコードが)  00 (NUL), 07 (BEL), 08 (BS), 09 (HT), 0a
63 (LF), 0b (VT), 0c (FF), 0d (CR), 0e (SO), 0f (SI), 18 (CAN), 1a (SUB), 1b
64 (ESC), 7f (DEL) の 14 のコードのうちのどれかである文字である。 "コントロール文字表示(display control
65 characters)"モード(後述)を 設定すると、07, 09, 0b, 18, 1a, 7f をグリフとして表示することができる。 一方、
66 UTF\-8 モードでは、00\-1f の全てのコードは、コントロール文字表示 モードが指定された場合でもコントロール文字として扱われる。
67 .PP
68 コントロール文字がある時には、それはすぐに(たとえエスケープシーケンスの 途中でも)実行され、破棄される。エスケープシーケンスは次の文字から続けられる
69 (しかし、ESC は新しいエスケープシーケンスを始めるので、 前の終了していないエスケープシーケンスが中止される可能性がある。 さらに、CAN と
70 SUB はどんなエスケープシーケンスも中止する)。 認められているコントロール文字は、BEL, BS, HT, LF, VT, FF, CR, SO,
71 SI, CAN, SUB, ESC, DEL, CSI である。これらは期待どおりの動作をする:
72 .HP
73 BEL (0x07, \fB^G\fP) はビープ音を鳴らす;
74 .HP
75 BS (0x08, \fB^H\fP) はバックスペース (ただし、行頭は越えない);
76 .HP
77 HT (0x09, \fB^I\fP) は次のタブストップ(tab stop)へ移動する、そこから行末までに タブストップが無い場合は行の終りに移動する;
78 .HP
79 LF (0x0A, \fB^J\fP), VT (0x0B, \fB^K\fP), FF (0x0C, \fB^L\fP) これらは全て
80 ラインフィード(linefeed)を与える; LF/NL (ニューラインモード(new line mode))がセットされていれば
81 キャリッジリターンもアクティブにする;
82 .HP
83 CR (0x0D, \fB^M\fP) はキャリッジリターンを与える;
84 .HP
85 SO (0x0E, \fB^N\fP) は G1 文字集合をアクティブにする。
86 .HP
87 SI (0x0F, \fB^O\fP) は G0 文字集合をアクティブにする;
88 .HP
89 CAN (0x18, \fB^X\fP) と SUB (0x1A, \fB^Z\fP) はエスケープシーケンスを中断する;
90 .HP
91 ESC (0x1B, \fB^[\fP) はエスケープシーケンスを始める。
92 .HP
93 DEL (0x7F) は無視される;
94 .HP
95 CSI (0x9B) は ESC [ と等価。
96 .PP
97 \fBエスケープシーケンスであるが CSI シーケンスでないもの\fP
98 .TS
99 l l l.
100 ESC c   RIS     リセット。
101 ESC D   IND     ラインフィード。
102 ESC E   NEL     ニューライン。
103 ESC H   HTS     現在の桁の位置にタブストップを設定する。
104 ESC M   RI      逆ラインフィード
105 ESC Z   DECID   T{
106 DEC固有の識別用。
107 カーネルは文字列 ESC [ ? 6 c を返す。
108 これは端末がVT102であることを意味する。
109 T}
110 ESC 7   DECSC   T{
111 現在の状態 (カーソルの座標、属性、G0, G1 で示している
112 文字集合) をセーブする。
113 T}
114 ESC 8   DECRC   最後に ESC 7 でセーブした状態を復帰させる。
115 ESC [   CSI     コントロールシーケンスを導入する。
116 ESC %           キャラクターセットを選択するシーケンスを開始する。
117 ESC % @         \0\0\0 デフォルト(ISO 646 / ISO 8859\-1)を選択する。
118 ESC % G         \0\0\0 UTF\-8 を選択する。
119 ESC % 8         \0\0\0 UTF\-8 を選択する(旧式)。
120 ESC # 8 DECALN  DEC のスクリーン調整テスト \- スクリーンを E でうめる。
121 ESC (           G0 文字集合を定義するシーケンスを開始する。
122 ESC ( B         \0\0\0 デフォルト(ISO 8859\-1 マッピング)を選択する。
123 ESC ( 0         \0\0\0 VT100 グラフィクスマッピングを選択する。
124 ESC ( U         \0\0\0 ヌルマッピングを選択する \- キャラクタ ROM から直接マッピングする。
125 ESC ( K         \0\0\0 ユーザー定義のマッピングを選択する \- そのマップ
126                 \0\0\0 は \fBmapscrn\fP(8) ユーティリティーによってロードされる。
127 ESC )           G1 を定義するシーケンスを開始する。
128                 (すでに述べたように B, 0, U, K のどれかが次に続く)
129 ESC >   DECPNM  数値キーパッドモード(numeric keypad mode)をセットする。
130 ESC =   DECPAM  アプリケーションキーパッドモード(application keypad mode) をセットする。
131 ESC ]   OSC     T{
132 ("Operating system command"のことだろう)
133 ESC ] P \fInrrggbb\fP: 最後の P のあとの 7 つの 16 進数を
134 パラメータとして :\-( パレットをセットする。
135 ここで、\fIn\fPは色 (0\-15)、\fIrrggbb\fPは赤/緑/青の値
136 (0\-255)を意味する。
137 ESC ] R: パレットをリセットする。
138 T}
139 .TE
140 .PP
141 \fBECMA\-48 CSI シーケンス\fP
142 .sp
143 CSI (または ESC [ ) のあとに、最大で NPAR (16) 個のセミコロンで区切られた 10 進数のパラメータシーケンスが続く。
144 空であるかそこにないパラメータは 0 とされる。 パラメータシーケンスの前にはひとつのクエスチョンマークがつくことがある。
145 .PP
146 しかし、CSI [ (または ESC [ [ ) の後では、一文字が読まれ、このすべての
147 パラメータシーケンスが無視される(要するにファンクションキーのエコーは 無視されるということである)。
148 .PP
149 CSI シーケンスの動作は、その最後の文字によって決まる。
150 .TS
151 l l l.
152 @       ICH     指示された数の空白文字を挿入する。
153 A       CUU     指示された数だけカーソルを上方向に移動する。
154 B       CUD     カーソルを指示された数の行だけ下方向に移動する。
155 C       CUF     カーソルを指示された数の桁だけ右に移動する。
156 D       CUB     カーソルを指示された数の桁だけ左に移動する。
157 E       CNL     カーソルを指示された数の行だけ下の第 1 桁に移動する。
158 F       CPL     カーソルを指示された数の行だけ上の第 1 桁に移動する。
159 G       CHA     カーソルを現在の行の指示された桁に移動する。
160 H       CUP     カーソルを指示された行、桁(1,1を原点とする)に移動する。
161 J       ED      ディスプレイの消去(デフォルト: カーソルからディスプレイの最後まで)。
162                 ESC [ 1 J: 最初からカーソルまでの消去。
163                 ESC [ 2 J: ディスプレイ全体の消去。
164                 ESC [ 3 J: スクロールバッファも含めたディスプレイ全体の
165                            消去 (Linux 3.0 以降)。
166 .\" ESC [ 3 J: commit f8df13e0a901fe55631fed66562369b4dba40f8b
167 K       EL      行の消去(デフォルト: カーソルから行末まで)。
168                 ESC [ 1 K: 行頭からカーソルまでの消去。
169                 ESC [ 2 K: 行全体の消去。
170 L       IL      指示された数の空行を挿入する。
171 M       DL      指示された数の行を削除する。
172 P       DCH     現在の行から指示された数の文字を削除する。
173 X       ECH     現在の行から指示された数の文字を消去する。
174 a       HPR     カーソルを指示された数の桁だけ右に移動する。
175 c       DA      ESC [ ? 6 c を返す: "私はVT102です"(ということ)。
176 d       VPA     カーソルを指示された行の現在の桁に移動する。
177 e       VPR     カーソルを指示された行数だけ下に移動する。
178 f       HVP     カーソルを指示された行、桁に移動する。
179 g       TBC     パラメータなしの時: 現在位置のタブストップを削除する。
180                 ESC [ 3 g: すべてのタブストップを削除する。
181 h       SM      モードのセット(後述)。
182 l       RM      モードのリセット(後述)。
183 m       SGR     属性のセット(後述)。
184 n       DSR     状態の報告(後述)。
185 q       DECLL   キーボードの LED をセットする。
186                 ESC [ 0 q: すべての LED を消す。
187                 ESC [ 1 q: スクロールロック LED を点灯。
188                 ESC [ 2 q: ナンバーロック LED を点灯。
189                 ESC [ 3 q: キャピタルロック LED を点灯。
190 r       DECSTBM スクロールの範囲のセット; パラメータは一番上の行と一番下の行。
191 s       ?       カーソル位置の保存。
192 u       ?       カーソル位置の復帰。
193 \`      HPA     カーソルを現在の行の指示された桁に移動する。
194 .TE
195 .PP
196 \fBECMA\-48 グラフィクスレンディション(Graphics Rendition)の設定\fP
197 .sp
198 ECMA\-48 SGR シーケンス ESC [ <パラメータ> m は表示属性を設定する。
199 セミコロンで区切ることで、同じシーケンスでいくつかの属性を設定できる。
200 空パラメータ(セミコロンか文字列開始文字か文字列終端文字の間)はゼロと解釈される。
201 .TS
202 l l.
203 パラメータ 結果
204 0       すべての属性をデフォルトにリセットする。
205 1       ボールド(bold)をセット。
206 2       ハーフブライト(half\-bright)(カラーディスプレイでは色で代用)をセット。
207 4       T{
208 下線(underscore)をセット(カラーディスプレイでは色で代用)。
209 (ディムや下線を代用するのに使われる色は 
210 ESC ] ... によりセット)
211 T}
212 5       点滅(blink)をセット。
213 7       反転表示(reverce video)をセット。
214 10      T{
215 選択したマッピング、ディスプレイコントロールフラグ(display control flag)、
216 トグルメタフラグ(toggle meta flag)をリセットする (ECMA\-48では"primary font"と呼んでいる)。
217 T}
218 11      T{
219 ヌルマッピングを選択、ディスプレイコントロールフラグをセット、
220 トグルメタフラグをリセットする
221 (ECMA\-48 では"first alternate font"と呼んでいる)。
222 T}
223 12      T{
224 ヌルマッピングを選択、ディスプレイコントロールフラグをセット、
225 トグルメタフラグをセットする (ECMA\-48 では "second alternate font" と呼んでいる)。
226 トグルメタフラグがたっていると、
227 マッピングテーブルによる変換をする前に、
228 バイトの上位の1ビットがトグルされる。
229 T}
230 21      通常の輝度にセット(ECMA\-48 では "doubly underlined" と呼んでいる)。
231 22      通常の輝度にセット。
232 24      下線オフ。
233 25      点滅オフ。
234 27      反転表示オフ。
235 30      フォアグラウンド(foreground)を黒にセット。
236 31      フォアグラウンドを赤にセット。
237 32      フォアグラウンドを緑にセット。
238 33      フォアグラウンドを茶にセット。
239 34      フォアグラウンドを青にセット。
240 35      フォアグラウンドをマゼンダにセット。
241 36      フォアグラウンドをシアンにセット。
242 37      フォアグラウンドを白にセット。
243 38      下線表示に設定し、フォアグラウンドをデフォルトにセット。
244 39      下線表示を解除し、フォアグラウンドをデフォルトにセット。
245 40      バックグラウンド(background)を黒にセット。
246 41      バックグラウンドを赤にセット。
247 42      バックグラウンドを緑にセット。
248 43      バックグラウンドを茶にセット。
249 44      バックグラウンドを青にセット。
250 45      バックグラウンドをマゼンダにセット。
251 46      バックグラウンドをシアンにセット。
252 47      バックグラウンドを白にセット。
253 49      バックグラウンドをデフォルトにセット。
254 .TE
255 .PP
256 \fBECMA\-48 モードスイッチ(Mode Switches)\fP
257 .TP 
258 ESC [ 3 h
259 DECCRM (デフォルトではオフ): コントロール文字を表示する。
260 .TP 
261 ESC [ 4 h
262 DECIM (デフォルトではオフ): 挿入モードにする。
263 .TP 
264 ESC [ 20 h
265 .\"
266 LF/NL (デフォルトではオフ): LF, VT, FFをエコーしたあと自動的 CR をつける。
267 .PP
268 .\"
269 \fBECMA\-48 状態リポートコマンド(Status Report Commands)\fP
270 .TP 
271 ESC [ 5 n
272 デバイス状態のリポート(DSR): 返事は ESC [ 0 n (端末 OK).
273 .TP 
274 ESC [ 6 n
275 .\"
276 カーソル位置のリポート(CPR): 返事は ESC [ \fIy\fP ; \fIx\fP R、 \fIx,y\fP はカーソルの位置をあらわす。
277 .PP
278 \fBDEC プライベートモード (DECSET/DECRST) シーケンス\fP
279 .sp
280 .\"
281 これらは ECMA\-48 では記述されていない。ここでは、セットモード シーケンス (Set Mode sequences)を記載する; 最後の
282 \(aqh\(aq を \(aql\(aq に 置き換えるとリセットモードシーケンス(Reset Mode sequences)になる。
283 .TP 
284 ESC [ ? 1 h
285 DECCKM (デフォルトはオフ): セットされた時にはカーソルキーは ESC [ ではなく ESC O を前につけて送る。
286 .TP 
287 ESC [ ? 3 h
288 DECCOLM (デフォルトはオフ = 80 桁): 80/132 の桁モード切替え。 ドライバーのソースの注釈には、これだけでは十分でなく
289 \fBresizecons\fP(8)  のようなユーザーモードのユーティリティーで、コンソールビデオカードの
290 ハードウェアレジスタを変える必要があると書かれている。
291 .TP 
292 ESC [ ? 5 h
293 DECSCNM (デフォルトはオフ): 反転表示モードのセット。
294 .TP 
295 ESC [ ? 6 h
296 DECOM(デフォルトはオフ): セットされた時には、カーソルのアドレッシングが、 スクロール範囲の左上隅からの相対位置になる。
297 .TP 
298 ESC [ ? 7 h
299 DECAWM(デフォルトはオン): オートラップを設定。このモードの時は、80 桁 (DECCOLM がオンのときは 132
300 桁)を超えたグラフィックキャラクタは、 強制的に次の行の先頭に折り返されて表示される。
301 .TP 
302 ESC [ ? 8 h
303 DECARM(デフォルトはオン): キーボードのオートリピートをオンにセット。
304 .TP 
305 ESC [ ? 9 h
306 X10 マウスリポート(デフォルトはオフ): リポートモードを 1 にセット(または、 0 にリセット)\(em後述
307 .TP 
308 ESC [ ? 25 h
309 DECTECM (デフォルトはオン): カーソルを可視(visible)にする。
310 .TP 
311 ESC [ ? 1000 h
312 .\"
313 X11 マウスリポート(デフォルトはオフ): リポートモードを 2 にセット(または、 0にリセット)\(em後述
314 .PP
315 \fBLinux コンソールプライベート CSI シーケンス\fP
316 .sp
317 .\"
318 以下のシーケンスは ECMA\-48 のものでも本来の VT102 のものでもでもなく、 Linuxコンソールドライバーに固有なシーケンスである。色は
319 SGR パラメータで 表現される: 0 = 黒, 1= 赤, 2 = 緑, 3 = 茶, 4 = 青, 5 = マゼンタ, 6 = シアン, 7 = 白
320 .TS
321 l l.
322 ESC [ 1 ; \fIn\fP ]     下線の色を\fIn\fP にセットする。
323 ESC [ 2 ; \fIn\fP ]     ディムの色を\fIn\fP にセットする。
324 ESC [ 8 ]               現在の色のペアをデフォルト属性にする。
325 ESC [ 9 ; \fIn\fP ]     スクリーンブランク(screen blank)のタイムアウトを \fIn\fP 分にセットする。
326 ESC [ 10 ; \fIn\fP ]    ベルの周波数(Hz)をセットする。
327 ESC [ 11 ; \fIn\fP ]    ベルの鳴っている時間(msec)をセットする。
328 ESC [ 12 ; \fIn\fP ]    指定のコンソールを前面に持ってくる。
329 ESC [ 13 ]              スクリーンをアンブランク(Unblank)する。
330 ESC [ 14 ]              VESA電源停止インターバル(VESA powerdown interval)をセットする。
331 .TE
332 .SS "Character sets"
333 カーネルは、バイト列からコンソールスクリーン符号の変換を 4 つ 知っている。 4 つの変換テーブルとは、a) Latin1 \-> PC, b)
334 VT100 graphics \-> PC, c) PC \-> PC, d) ユーザー定義, である。
335 .PP
336 G0 と G1 と呼ばれる二つの文字集合があり、そのうち一つが現在の 文字集合である(初期値は G0 )。 \fB^N\fP をタイプすると G1 が
337 \fB^O\fP を入力すると G0 が現在の文字集合になる。
338 .PP
339 変数 G0 と G1 は変換テーブルを指しており、ユーザーにより変更できる。 最初はそれぞれテーブル a) と テーブル b) を指している。 ESC
340 ( B 、 ESC ( 0 、 ESC ( U 、 ESC ( K のそれぞれのシーケンスにより、 G0 が変換テーブル a)、 b)、 c)、 d)
341 を指すようになる。 また、ESC ) B 、 ESC ) 0 、 ESC ) U 、 ESC ) K のそれぞれのシーケンス により、G1
342 が変換テーブル a)、 b)、 c)、 d) を指すようになる。
343 .PP
344 ESC c のシーケンスは端末をリセットする。スクリーンがめちゃくちゃになった 時にそうすることが必要である。よくアドバイスされる "echo
345 ^V^O" は G0 を現在の文字集合にするだけであり、G0 がテーブル a) を指しているという 保証はない。 いくつかのディストリビューションには、
346 \fBreset\fP(1)  というプログラムが含まれるが、これはただ "echo ^[c" を実行するものである。 もし、コンソールの terminfo
347 エントリーが正しい(かつ rs1=\eEc のエントリーが ある)ならば、"tput reset"でも同じ効果がある。
348 .PP
349 ユーザー定義のマッピングテーブルは \fBmapscrn\fP(8)  を使って定義できる。 マッピングの結果、シンボル c が印字されるとシンボル s =
350 map[c] が ビデオメモリに送られる。s に対応するビットマップはキャラクター ROM にあり、 \fBsetfont\fP(8)
351 により変更可能である。
352 .SS "Mouse tracking"
353 マウストラッキング機能は、 \fBxterm\fP(1)\-互換の マウスステータスリポート(mouse status
354 reports)を返させるためのものである。 コンソールドライバーはマウスのデバイスや種類について知る方法が
355 ないので、仮想ターミナルドライバーがマウス更新の ioctl を受け取った時だけ、 マウスステータスリポートがコンソールの入力ストリームに送られる。
356 この ioctl は、 \fBgpm\fP(8)  デーモンのようなマウス対応のユーザーモード アプリケーションが発生しなければならない。
357 .PP
358 \fBxterm\fP(1) によって生成される全てのマウス追跡エスケープシーケンスのための パラメータは、数値を \fIvalue\fP+040
359 のように符号化し、一つの文字として あらわす。 例えば、\(aq!\(aq は 1 になる。スクリーン座標は 1 をベースにする。
360 .PP
361 X10 互換モードでは、ボタンが押された時にマウスの位置と押されたマウスの ボタンとをエンコードしたエスケープシーケンスを送る。 この機能は ESC [
362 ? 9 h を送ると有効になり ESC [ ? 9 l により無効になる。 ボタンが押されると \fBxterm\fP(1) は ESC [ M \fIbxy\fP
363 (の 6 文字)を送る。 ここで \fIb\fP は button\-1, \fIx\fP と \fIy\fP は マウスがボタンが押された 時の x と y 座標である。
364 このコードはカーネルが発生するのと同じコードである。
365 .PP
366 ノーマルトラッキングモード(Normal tracking mode)(Linux 2.0.24 では
367 実装されていない)では、両方のボタンが押されたか離された時に エスケープシーケンスが送られる。 モディファイアの情報も一緒に送られる。
368 この機能は、ESC [ ? 1000 h を送ると有効になり ESC [ ? 1000 l で無効になる。
369 ボタンが押されるか離されるかした時には、\fBxterm\fP(1) は ESC [ M \fIbxy\fP を送る。 \fIb\fP
370 の低位の2ビットにはボタン情報がエンコードされる: 0=MB1 が押された, 1=MB2 が押された, 2=MB3 が押された, 3=離された。
371 高位のビットには、ボタンが押された時にどのモディファイアがダウンしていたかが エンコードされる: 4=Shift, 8=Meta,
372 16=Control。 そして、上位と下位ビットが加算される。 ここでも \fIx\fP と \fIy\fP は、マウスイベントが起こった時の x と y
373 座標であり、左上の隅が(1,1)である。
374 .SS "Comparisons with other terminals"
375 .\"
376 多くの異なるターミナルタイプが、Linux コンソールのように、"VT100互換"を 名乗っている。 ここでは、Linux コンソールと 2
377 つの最も重要なターミナルである DEC VT102 と \fBxterm\fP(1)  との違いについて述べる。
378 .PP
379 \fBコントロール文字の取り扱い\fP
380 .sp
381 VT102 は以下のコントロール文字も認識する:
382 .HP
383 NUL (0x00) は無視される;
384 .HP
385 ENQ (0x05) はアンサーバックメッセージ(answerback message)を発生する;
386 .HP
387 DC1 (0x11, \fB^Q\fP, XON) は送信を再開する;
388 .HP
389 DC3 (0x13, \fB^S\fP, XOFF) は VT100 に XOFF と XON 以外のコードを無視(そして 送信の停止)を起こさせる。
390 .LP
391 VT100\-like DC1/DC3 processing may be enabled by the terminal driver.
392 .LP
393 .\"
394 \fBxterm\fP(1)  (VT100 モード)は BEL, BS, HT, LF, VT, FF, CR, SO, SI, ESC の
395 コントロール文字を認識する。
396 .PP
397 \fBエスケープシーケンス\fP
398 .sp
399 Linux コンソールで実装されていない VT100 コンソールシーケンスは以下の通り:
400 .TS
401 l l l.
402 ESC N   SS2     シングルシフト 2 (次の文字だけ G2
403                 文字集合を選択する)。
404 ESC O   SS3     シングルシフト 3 (次の文字だけ G3
405                 文字集合を選択する)。
406 ESC P   DCS     デバイス制御文字列 (ESC \e で終わる)
407 ESC X   SOS     文字列の始まり。
408 ESC ^   PM      プライバシーメッセージ(ESC \e で終わる)。
409 ESC \e  ST      文字列の終端文字。
410 ESC * ...               G2 文字集合を指定する。
411 ESC + ...               G3 文字集合を指定する。
412 .TE
413 .PP
414 \fBxterm\fP(1)  (VT100 モード)は ESC c, ESC # 8, ESC >, ESC =, ESC D, ESC E,
415 ESC H, ESC M, ESC N, ESC O, ESC P ... ESC \e, ESC Z を認識する("わたしは高等ビデオオプション付きの
416 VT100 です"という 意味で ESC [ ? 1 ; 2 c と返答する)、ESC ^ ... ESC \e は上述と同じ意味を あらわす。ESC
417 (, ESC ), ESC *, ESC + に続く 0, A, B を DEC 特殊文字と して受け、それぞれラインドローイング(line
418 drawing) のセット、UK、 US\-ASCII をあらわす。
419 .PP
420 ユーザーは \fBxterm\fP(1) が VT220 特有のコントロールシーケンスに 反応するように設定でき、また設定と初期化のされかたによって
421 自分自身を VT52, VT100 などと認識する。
422 .PP
423 xterm は、特定のリソースの設定のために ESC ] (OSC) を受け付ける。 ECMA\-48 の文字列終端文字 (ST) に加えて、
424 \fBxterm\fP(1) は BEL を OSC 文字列を終端するものとして受け付ける。 以下は \fBxterm\fP(1) が認識する OSC
425 コントロールシーケンスの一部である。
426 .TS
427 l l.
428 ESC ] 0 ; \fItxt\fP ST  アイコン名とウインドウタイトルを \fItxt\fP にセットする。
429 ESC ] 1 ; \fItxt\fP ST  アイコン名を \fItxt\fP にセットする。
430 ESC ] 2 ; \fItxt\fP ST  ウインドウタイトルを \fItxt\fP にセットする。
431 ESC ] 4 ; \fInum\fP; \fItxt\fP ST       ANSI 色 \fInum\fP を \fItxt\fP にセットする。
432 ESC ] 10 ; \fItxt ST    動的テキスト色を txt にセットする。\fP
433 \fIESC ] 4 6 ; name ST  チェンジログファイルを name に変更する(通常は\fP
434 \fI     コンパイル時オプションにより無効になっている)。\fP
435 \fIESC ] 5 0 ; fn ST    フォントを fn にセットする。\fP
436 .TE
437 .PP
438 以下のものは、少し違った意味にとられる (より多くの状態を保存し、より VT100/VT220 に近いふるまいをする):
439 .TS
440 l l l.
441 ESC 7  DECSC    カーソルの保存。
442 ESC 8  DECRC    カーソルの復元。
443 .TE
444 .PP
445 また、次のものも認識する:
446 .TS
447 l l l.
448 ESC F           カーソルをスクリーンの左下に移動する。
449                 (\fBxterm\fP(1) の \fBhpLowerleftBugCompat\fPリソースにより有効な時)
450 ESC l           (HP ターミナル毎に)メモリロック。
451                 カーソルより上のメモリをロックする。
452 ESC m           (HP ターミナル毎に)メモリロックを解除する。
453 ESC n   LS2     G2 文字集合の呼び出し。
454 ESC o   LS3     G3 文字集合の呼び出し。
455 ESC |   LS3R    G3 文字集合を GR として呼び出す。
456 ESC }   LS2R    G2 文字集合を GR として呼び出す。
457 ESC ~   LS1R    G1 文字集合を GR として呼び出す。
458 .TE
459 .PP
460 .\"
461 また ESC % を認識し、Linux コンソールより更に完全な UTF\-8 実装を提供する。
462 .PP
463 \fBCSI シーケンス\fP
464 .sp
465 X11R5 由来のような、古いバージョンの \fBxterm\fP(1) はブリンク SGR を ボールド SGR として解釈する。 1995 年の
466 XFree86 3.1.2A のような、ANSI カラーが実装された、より新しい バージョンでは、ブリンク属性を色として表示することによってこれを
467 改善している。 最近のバージョンの xterm はブリンク SGR をテキストをブリンクさせることで 実装し、さらにまた、SGR
468 表示の代替案として色付きのテキストも利用できる。 Stock X11R6 版では、XFree86 xterm が組み入れられた X11R6.8
469 リリースまで 色設定 SGR を認識しなかった。 Linux が認識する他のすべての ECMA\-48 CSI シーケンスは \fIxterm\fP
470 でも認識されるが、\fBxterm\fP(1) は Linux が認識しない いくつかの ECMA\-48 と DEC のコントロールシーケンスも実装している。
471 .PP
472 \fBxterm\fP(1) は上述のすべての DEC プライベートモードのシーケンスを認識するが、 Linux
473 プライベートモードのシーケンスはどれも認識しない。 \fBxterm\fP(1) 自身のプライベートモードシーケンスに関しての議論は、 X
474 配布とともに入手可能な Edward Moy, Stephen Gildea,Thomas E. Dickey による \fIXterm Control
475 Sequences\fP ドキュメントを参照されたい。 このドキュメントは、簡潔なものであるが、このマニュアルページより 遥かに長いものである。
476 年代順の概観としては、
477 .PP
478 .in +4n
479 .UR http://invisible\-island.net\:/xterm\:/xterm.log.html
480 .UE
481 .in
482 .PP
483 には xterm の変更の詳細がある。
484 .PP
485 \fIvttest\fP は
486 .PP
487 .in +4n
488 .UR http://invisible\-island.net\:/vttest/
489 .UE
490 .in
491 .PP
492 で入手でき、これらのコントロールシーケンスの多くに関するデモを行う。 \fBxterm\fP(1) ソース配布パッケージには
493 その他の機能を学ぶことが出来るサンプルスクリプトが入っている。
494 .SH 注意
495 ESC 8 (DECRC) は ESC % で変更された文字集合を復元することはできない。
496 .SH バグ
497 2.0.23 では CSI が壊れていて、エスケープシーケンス中の NUL が 無視されない。
498 .PP
499 古いバージョン(2.0 以降)のカーネルには、8 ビット制御シーケンスを解釈する。 これらの "C1 コントロール" は ESC [, ESC ]
500 および同様な制御シーケンス 起動子を置き換えるために 128 から 159 のコードを使う。 新しいカーネルでは (UTF\-8
501 対応の変更時に見落とされたか壊れたために)  寸断しているが、実装は不完全で信頼できないものと評価されている。
502 .PP
503 Linux "プライベートモード" シーケンスは ECMA\-48 のプライベートモード コントロールシーケンスのルールに従っていない。 特に、 ]
504 で終わるものは標準終端文字を使えない。 OSC(パレット設定)シーケンスは大きな問題がある。 \fBxterm\fP(1) はこれを文字列終端文字 (ST)
505 が必要なコントロールシーケンスと 解釈するかもしれないからである。 (不正なコントロールシーケンスなので)無視される \fBsetterm\fP(1)
506 シーケンスと 違い、パレットシーケンスは \fBxterm\fP(1) をハングさせるかもしれない (しかしリターンキーを押すことで回復できる)。 Linux
507 コントロールシーケンスをハードコードしているアプリケーションに 適応させるには、\fBxterm\fP(1) リソースの \fBbrokenLinuxOSC\fP
508 を 真 (true) に設定する。
509 .PP
510 このドキュメントの古いバージョンでは、Linux が ECMA\-48 の不可視テキストの コントロールシーケンスを認識するかのように書かれていた。
511 これは無視される。
512 .SH 関連項目
513 \fBconsole\fP(4), \fBconsole_ioctl\fP(4), \fBcharsets\fP(7)
514 .SH この文書について
515 この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.50 の一部
516 である。プロジェクトの説明とバグ報告に関する情報は
517 http://www.kernel.org/doc/man\-pages/ に書かれている。