OSDN Git Service

adee0cb27de6dd47d8d4ca6a250994dbfbb7a46e
[linuxjm/LDP_man-pages.git] / draft / man4 / console_codes.4
1 '\" t
2 .\" Copyright (c) 1996 Andries Brouwer <aeb@cwi.nl>, Mon Oct 31 22:13:04 1996
3 .\"
4 .\" This is free documentation; you can redistribute it and/or
5 .\" modify it under the terms of the GNU General Public License as
6 .\" published by the Free Software Foundation; either version 2 of
7 .\" the License, or (at your option) any later version.
8 .\"
9 .\" This is combined from many sources.
10 .\" For Linux, the definitive source is of course console.c.
11 .\" About vt100-like escape sequences in general there are
12 .\" the ISO 6429 and ISO 2022 norms, the descriptions of
13 .\" an actual vt100, and the xterm docs (ctlseqs.ms).
14 .\" Substantial portions of this text are derived from a write-up
15 .\" by Eric S. Raymond <esr@thyrsus.com>.
16 .\"
17 .\" Tiny correction, aeb, 961107.
18 .\"
19 .\" 2006-05-27, Several corrections - Thomas E. Dickey
20 .\"
21 .\" Japanese Version Copyright (c) 1996,1997,1998
22 .\"         ISHIKAWA Mutsumi, TAKAHASHI Mutsuji
23 .\"                                    all rights reserved.
24 .\" Translated Mon Jul 21 03:12:45 JST 1997
25 .\"         by ISHIKAWA Mutsumi <ishikawa@linux.or.jp>
26 .\"             and TAKAHASHI Mutsuji <muz@ilp.iijnet.or.jp>
27 .\"
28 .\" Japanese Version Modified Mon Jan 12 03:29:14 JST 1998
29 .\"     by ISHIKAWA Mutsumi <ishikawa@linux.or.jp>
30 .\" Updated Wed Jan  9 JST 2001 by Kentaro Shirakata <argrath@ub32.org>
31 .\" Updated Sun Jul 23 JST 2006 by Kentaro Shirakata <argrath@ub32.org>
32 .\" Updated Tue Jul 22 JST 2008 by Kentaro Shirakata <argrath@ub32.org>
33 .\"
34 .\" WORD:       private mode    プライベートモード
35 .\"
36 .TH CONSOLE_CODES 4 2011-09-15 "Linux" "Linux Programmer's Manual"
37 .SH 名前
38 console_codes \- Linux コンソールのエスケープシーケンスとコントロール
39 シーケンス
40 .SH 説明
41 Linux コンソールは VT102 と ECMA-48/ISO6429/ANSI X3.64 端末コンソールの
42 サブセットに、カラーパレットや文字集合のマッピングなどを変更する
43 プライベートモードシーケンスを加えて実装されている。
44 以下の表では、機能の ECMA-48 または DEC のニーモニクス(DECで始まれば後者)を
45 2 番目の桁に記す。
46 ニーモニクスのないものは ECMA-48 でも VT102 でもないものである。
47 .LP
48 すべての出力作業が終って、実際に印字するために文字のストリームが
49 コンソールドライバーに届いた時、最初に行なわれるのが、処理用コードから
50 印字用のコードへの変換である。
51 .LP
52 もし、コンソールが UTF-8 モードなら、入って来たバイト(byte)は
53 16 ビットの Unicode に組み立てられる。そうでなければ、それぞれの
54 バイトは現在の(各バイトを Unicode の値に変換する)マッピングテーブルに
55 従って変換される。これに関しては下のキャラクターセット(Charcter Sets)
56 節を参照のこと。
57 .LP
58 通常、Unicode の値はフォントインデックス(font index) に変換され、
59 ビデオメモリに蓄えられる。そして(ビデオ ROM 中に見付けられる)
60 対応するグリフ(glyph)が画面に現れる。
61 Unicode を用いると、(PC 互換機の設計では) 512 の異なった
62 グリフを同時に利用できるようになる。
63 .LP
64 現在の Unicode の値がコントロール文字であるかエスケープシーケンスを
65 処理している時には、その値は特別に扱われる。
66 フォントのインデックスに変換されてグリフとして表示される代わりに、カーソルの
67 移動やその他のコントロール機能を実行させる。
68 詳しいことは、後述の「LINUX コンソールコントロール」のセクションを参照のこと。
69 .LP
70 一般に端末コントロールコードをプログラム中に直接記述するのは
71 良いことではない。
72 Linuxでは、端末において実現可能な操作のデータベースである
73 .BR terminfo (5)
74 をサポートしている。
75 コンソールエスケープシーケンスをわざわざ入力するよりも、ほとんどの場合
76 terminfo の情報を参照する
77 .BR ncurses (3),
78 .BR tput (1),
79
80 .BR reset (1)
81 などのスクリーンライブラリやユーティリティーを使いたいと思うであろう。
82 .SS "Linux コンソールコントロール"
83 この章では Linux コンソールにおいて特殊な機能(つまり、現在のカーソル位置に
84 文字のイメージを印字する以外のこと)を起こさせる全てのコントロール文字と
85 エスケープシーケンスについて述べる。
86 .PP
87 .B "コントロール文字"
88 .sp
89 コントロール文字とは、(マッピングテーブルによる変換前のコードが)
90 00 (NUL), 07 (BEL), 08 (BS), 09 (HT), 0a (LF), 0b (VT),
91 0c (FF), 0d (CR), 0e (SO), 0f (SI), 18 (CAN), 1a (SUB),
92 1b (ESC), 7f (DEL) の 14 のコードのうちのどれかである文字である。
93 "コントロール文字表示(display control characters)"モード(後述)を
94 設定すると、07, 09, 0b, 18, 1a, 7f をグリフとして表示することができる。
95 一方、 UTF-8 モードでは、00-1f の全てのコードは、コントロール文字表示
96 モードが指定された場合でもコントロール文字として扱われる。
97 .PP
98 コントロール文字がある時には、それはすぐに(たとえエスケープシーケンスの
99 途中でも)実行され、破棄される。エスケープシーケンスは次の文字から続けられる
100 (しかし、ESC は新しいエスケープシーケンスを始めるので、
101 前の終了していないエスケープシーケンスが中止される可能性がある。
102 さらに、CAN と SUB はどんなエスケープシーケンスも中止する)。
103 認められているコントロール文字は、BEL, BS, HT, LF, VT, FF, CR, SO, SI,
104 CAN, SUB, ESC, DEL, CSI である。これらは期待どおりの動作をする:
105 .HP
106 .\"O BEL (0x07, \fB^G\fP) beeps;
107 BEL (0x07, \fB^G\fP) はビープ音を鳴らす;
108 .HP
109 .\"O BS (0x08, \fB^H\fP) backspaces one column
110 .\"O (but not past the beginning of the line);
111 BS (0x08, \fB^H\fP) はバックスペース
112 (ただし、行頭は越えない);
113 .HP
114 .\"O HT (0x09, \fB^I\fP) goes to the next tab stop or to the end of the line
115 .\"O if there is no earlier tab stop;
116 HT (0x09, \fB^I\fP) は次のタブストップ(tab stop)へ移動する、そこから行末までに
117 タブストップが無い場合は行の終りに移動する;
118 .HP
119 .\"O LF (0x0A, \fB^J\fP), VT (0x0B, \fB^K\fP) and
120 .\"O FF (0x0C, \fB^L\fP) all give a linefeed,
121 .\"O and if LF/NL (new-line mode) is set also a carriage return;
122 LF (0x0A, \fB^J\fP), VT (0x0B, \fB^K\fP), FF (0x0C, \fB^L\fP) これらは全て
123 ラインフィード(linefeed)を与える;
124 LF/NL (ニューラインモード(new line mode))がセットされていれば
125 キャリッジリターンもアクティブにする;
126 .HP
127 .\"O CR (0x0D, \fB^M\fP) gives a carriage return;
128 CR (0x0D, \fB^M\fP) はキャリッジリターンを与える;
129 .HP
130 .\"O SO (0x0E, \fB^N\fP) activates the G1 character set;
131 SO (0x0E, \fB^N\fP) は G1 文字集合をアクティブにする。
132 .HP
133 .\"O SI (0x0F, \fB^O\fP) activates the G0 character set;
134 SI (0x0F, \fB^O\fP) は G0 文字集合をアクティブにする;
135 .HP
136 .\"O CAN (0x18, \fB^X\fP) and SUB (0x1A, \fB^Z\fP) interrupt escape sequences;
137 CAN (0x18, \fB^X\fP) と SUB (0x1A, \fB^Z\fP) はエスケープシーケンスを中断する;
138 .HP
139 .\"O ESC (0x1B, \fB^[\fP) starts an escape sequence;
140 ESC (0x1B, \fB^[\fP) はエスケープシーケンスを始める。
141 .HP
142 DEL (0x7F) は無視される;
143 .HP
144 CSI (0x9B) は ESC [ と等価。
145 .PP
146 .B "エスケープシーケンスであるが CSI シーケンスでないもの"
147 .sp
148 .TS
149 l l l.
150 ESC c   RIS     リセット。
151 ESC D   IND     ラインフィード。
152 ESC E   NEL     ニューライン。
153 ESC H   HTS     現在の桁の位置にタブストップを設定する。
154 ESC M   RI      逆ラインフィード
155 .\"O ESC Z      DECID   T{
156 .\"O DEC private identification. The kernel
157 .\"O returns the string  ESC [ ? 6 c, claiming
158 .\"O that it is a VT102.
159 .\"O T}
160 ESC Z   DECID   T{
161 DEC固有の識別用。カーネルは文字列 ESC [ ? 6 c を返す。
162 これは端末がVT102であることを意味する。
163 T}
164 .\"O ESC 7      DECSC   T{
165 .\"O Save current state (cursor coordinates,
166 .\"O attributes, character sets pointed at by G0, G1).
167 .\"O T}
168 ESC 7   DECSC   T{
169 現在の状態(カーソルの座標、属性、G0, G1 で示している
170 文字集合)をセーブする。
171 T}
172 .\"O ESC 8      DECRC   Restore state most recently saved by ESC 7.
173 ESC 8   DECRC   最後に ESC 7 でセーブした状態を復帰させる。
174 ESC [   CSI     コントロールシーケンスを導入する。
175 ESC %           キャラクターセットを選択するシーケンスを開始する。
176 ESC % @         \0\0\0 デフォルト(ISO 646 / ISO 8859-1)を選択する。
177 ESC % G         \0\0\0 UTF-8 を選択する。
178 ESC % 8         \0\0\0 UTF-8 を選択する(旧式)。
179 ESC # 8 DECALN  DEC のスクリーン調整テスト \- スクリーンを E で
180                 うめる。
181 ESC (           G0 文字集合を定義するシーケンスを開始する。
182 ESC ( B         \0\0\0 デフォルト(ISO 8859-1 マッピング)を選択する。
183 .\"O ESC ( 0            \0\0\0Select VT100 graphics mapping
184 ESC ( 0         \0\0\0 VT100 グラフィクスマッピングを選択する。
185 ESC ( U         \0\0\0 ヌルマッピングを選択する \- キャラクタ ROM から
186                 \0\0\0 直接マッピングする。
187 ESC ( K         \0\0\0 ユーザー定義のマッピングを選択する \- そのマップ
188                 \0\0\0 は \fBmapscrn\fP(8) ユーティリティーによってロー
189                 \0\0\0 ドされる。
190 ESC )           G1 を定義するシーケンスを開始する。
191                 (すでに述べたように B, 0, U, K のどれかが次に続く)
192 ESC >   DECPNM  数値キーパッドモード(numeric keypad mode)を
193                 セットする。
194 ESC =   DECPAM  アプリケーションキーパッドモード(application keypad
195                 mode) をセットする。
196 .\"O ESC ]      OSC     T{
197 .\"O (Should be: Operating system command)
198 .\"O ESC ] P \fInrrggbb\fP: set palette, with parameter
199 .\"O given in 7 hexadecimal digits after the final P :-(.
200 .\"O Here \fIn\fP is the color (0-15), and \fIrrggbb\fP indicates
201 .\"O the red/green/blue values (0-255).
202 .\"O ESC ] R: reset palette
203 .\"O T}
204 ESC ]   OSC     T{
205 ("Operating system command"のことだろう)
206 ESC ] P \fInrrggbb\fP: 最後の P のあとの 7 つの 16 進数を
207 パラメータとして :-( パレットをセットする。
208 ここで、\fIn\fPは色 (0-15)、\fIrrggbb\fPは赤/緑/青の値
209 (0-255)を意味する。
210 ESC ] R: パレットをリセットする。
211 T}
212 .TE
213 .PP
214 .B "ECMA-48 CSI シーケンス"
215 .sp
216 CSI (または ESC [ ) のあとに、最大で NPAR (16) 個のセミコロンで区切られた
217 10 進数のパラメータシーケンスが続く。
218 空であるかそこにないパラメータは 0 とされる。
219 パラメータシーケンスの前にはひとつのクエスチョンマークがつくことがある。
220 .PP
221 しかし、CSI [ (または ESC [ [ ) の後では、一文字が読まれ、このすべての
222 パラメータシーケンスが無視される(要するにファンクションキーのエコーは
223 無視されるということである)。
224 .PP
225 CSI シーケンスの動作は、その最後の文字によって決まる。
226 .TS
227 l l l l.
228 @       ICH     指示された数の空白文字を挿入する。
229 A       CUU     指示された数だけカーソルを上方向に移動する。
230 B       CUD     カーソルを指示された数の行だけ下方向に移動する。
231 C       CUF     カーソルを指示された数の桁だけ右に移動する。
232 D       CUB     カーソルを指示された数の桁だけ左に移動する。
233 E       CNL     カーソルを指示された数の行だけ下の第 1 桁に移動する。
234 F       CPL     カーソルを指示された数の行だけ上の第 1 桁に移動する。
235 G       CHA     カーソルを現在の行の指示された桁に移動する。
236 H       CUP     カーソルを指示された行、桁(1,1を原点とする)に
237                 移動する。
238 J       ED      ディスプレイの消去(デフォルト: カーソルからディスプレイの
239                 最後まで)。
240                 ESC [ 1 J: 最初からカーソルまでの消去。
241                 ESC [ 2 J: ディスプレイ全体の消去。
242 .\"O            ESC [ 3 J: erase whole display including scroll-back
243 .\"O                       buffer (since Linux 3.0).
244                 ESC [ 3 J: スクロールバッファも含めたディスプレイ全体の
245                            消去 (Linux 3.0 以降)。
246 .\" ESC [ 3 J: commit f8df13e0a901fe55631fed66562369b4dba40f8b
247 K       EL      行の消去(デフォルト: カーソルから行末まで)。
248                 ESC [ 1 K: 行頭からカーソルまでの消去。
249                 ESC [ 2 K: 行全体の消去。
250 L       IL      指示された数の空行を挿入する。
251 M       DL      指示された数の行を削除する。
252 P       DCH     現在の行から指示された数の文字を削除する。
253 X       ECH     現在の行から指示された数の文字を消去する。
254 a       HPR     カーソルを指示された数の桁だけ右に移動する。
255 c       DA      ESC [ ? 6 c を返す: "私はVT102です"(ということ)。
256 d       VPA     カーソルを指示された行の現在の桁に移動する。
257 e       VPR     カーソルを指示された行数だけ下に移動する。
258 f       HVP     カーソルを指示された行、桁に移動する。
259 g       TBC     パラメータなしの時: 現在位置のタブストップを削除する。
260                 ESC [ 3 g: すべてのタブストップを削除する。
261 h       SM      モードのセット(後述)。
262 l       RM      モードのリセット(後述)。
263 m       SGR     属性のセット(後述)。
264 n       DSR     状態の報告(後述)。
265 q       DECLL   キーボードの LED をセットする。
266                 ESC [ 0 q: すべての LED を消す。
267                 ESC [ 1 q: スクロールロック LED を点灯。
268                 ESC [ 2 q: ナンバーロック LED を点灯。
269                 ESC [ 3 q: キャピタルロック LED を点灯。
270 r       DECSTBM スクロールの範囲のセット; パラメータは一番上の行と
271                 一番下の行。
272 s       ?       カーソル位置の保存。
273 u       ?       カーソル位置の復帰。
274 \`      HPA     カーソルを現在の行の指示された桁に移動する。
275 .TE
276 .PP
277 .B "ECMA-48 グラフィクスレンディション(Graphics Rendition)の設定"
278 .sp
279 .\"O The ECMA-48 SGR sequence ESC [ \fIparameters\fP m sets display
280 .\"O attributes.
281 .\"O Several attributes can be set in the same sequence, separated by
282 .\"O semicolons.
283 .\"O An empty parameter (between semicolons or string initiator or
284 .\"O terminator) is interpreted as a zero.
285 ECMA-48 SGR シーケンス ESC [ <パラメータ> m は表示属性を設定する。
286 セミコロンで区切ることで、同じシーケンスでいくつかの属性を設定できる。
287 空パラメータ(セミコロンか文字列開始文字か文字列終端文字の間)はゼロと解釈される。
288 .TS
289 l l.
290 パラメータ 結果
291 0       すべての属性をデフォルトにリセットする。
292 1       ボールド(bold)をセット。
293 2       ハーフブライト(half-bright)(カラーディスプレイでは色で代用)を
294         セット。
295 .\"O 4  T{
296 .\"O set underscore (simulated with color on a color display)
297 .\"O (the colors used to simulate dim or underline are set
298 .\"O using ESC ] ...)
299 .\"O T}
300 4       T{
301 下線(underscore)をセット(カラーディスプレイでは色で代用)。
302 (ディムや下線を代用するのに使われる色は ESC ] ... によりセット)
303 T}
304 5       点滅(blink)をセット。
305 7       反転表示(reverce video)をセット。
306 .\"O 10 T{
307 .\"O reset selected mapping, display control flag,
308 .\"O and toggle meta flag (ECMA-48 says "primary font").
309 .\"O T}
310 10      T{
311 選択したマッピング、ディスプレイコントロールフラグ(display
312 control flag)、トグルメタフラグ(toggle meta flag)をリセットする
313 (ECMA-48では"primary font"と呼んでいる)。
314 T}
315 .\"O 11 T{
316 .\"O select null mapping, set display control flag,
317 .\"O reset toggle meta flag (ECMA-48 says "first alternate font").
318 .\"O T}
319 11      T{
320 ヌルマッピングを選択、ディスプレイコントロールフラグをセット、
321 トグルメタフラグをリセットする
322 (ECMA-48 では"first alternate font"と呼んでいる)。
323 T}
324 .\"O 12 T{
325 .\"O select null mapping, set display control flag,
326 .\"O set toggle meta flag (ECMA-48 says "second alternate font").
327 .\"O The toggle meta flag
328 .\"O causes the high bit of a byte to be toggled
329 .\"O before the mapping table translation is done.
330 .\"O T}
331 12      T{
332 ヌルマッピングを選択、ディスプレイコントロールフラグ、
333 トグルメタフラグをセットする
334 (ECMA-48 では "second alternate font" と呼んでいる)。
335 トグルメタフラグがたっていると、
336 マッピングテーブルによる変換をする前に、バイトの上位の1ビットが
337 トグルされる。
338 T}
339 .\"O 21 set normal intensity (ECMA-48 says "doubly underlined")
340 21      通常の輝度にセット(ECMA-48 では "doubly underlined" と呼んでいる)。
341 22      通常の輝度にセット。
342 24      下線オフ。
343 25      点滅オフ。
344 27      反転表示オフ。
345 30      フォアグラウンド(foreground)を黒にセット。
346 31      フォアグラウンドを赤にセット。
347 32      フォアグラウンドを緑にセット。
348 33      フォアグラウンドを茶にセット。
349 34      フォアグラウンドを青にセット。
350 35      フォアグラウンドをマゼンダにセット。
351 36      フォアグラウンドをシアンにセット。
352 37      フォアグラウンドを白にセット。
353 38      下線表示に設定し、フォアグラウンドをデフォルトにセット。
354 39      下線表示を解除し、フォアグラウンドをデフォルトにセット。
355 40      バックグラウンド(background)を黒にセット。
356 41      バックグラウンドを赤にセット。
357 42      バックグラウンドを緑にセット。
358 43      バックグラウンドを茶にセット。
359 44      バックグラウンドを青にセット。
360 45      バックグラウンドをマゼンダにセット。
361 46      バックグラウンドをシアンにセット。
362 47      バックグラウンドを白にセット。
363 49      バックグラウンドをデフォルトにセット。
364 .TE
365 .PP
366 .B "ECMA-48 モードスイッチ(Mode Switches)"
367 .TP
368 ESC [ 3 h
369 DECCRM (デフォルトではオフ): コントロール文字を表示する。
370 .TP
371 ESC [ 4 h
372 DECIM (デフォルトではオフ): 挿入モードにする。
373 .TP
374 ESC [ 20 h
375 LF/NL (デフォルトではオフ): LF, VT, FFをエコーしたあと自動的 CR をつける。
376 .\"
377 .PP
378 .B "ECMA-48 状態リポートコマンド(Status Report Commands)"
379 .\"
380 .TP
381 ESC [ 5 n
382 デバイス状態のリポート(DSR): 返事は ESC [ 0 n (端末 OK).
383 .TP
384 ESC [ 6 n
385 カーソル位置のリポート(CPR): 返事は ESC [ \fIy\fP ; \fIx\fP R、
386 \fIx,y\fP はカーソルの位置をあらわす。
387 .\"
388 .PP
389 .B "DEC プライベートモード (DECSET/DECRST) シーケンス"
390 .sp
391 .\"
392 これらは ECMA-48 では記述されていない。ここでは、セットモード
393 シーケンス (Set Mode sequences)を記載する; 最後の \(aqh\(aq を \(aql\(aq に
394 置き換えるとリセットモードシーケンス(Reset Mode sequences)になる。
395 .TP
396 ESC [ ? 1 h
397 DECCKM (デフォルトはオフ): セットされた時にはカーソルキーは ESC [ ではなく
398 ESC O を前につけて送る。
399 .TP
400 ESC [ ? 3 h
401 DECCOLM (デフォルトはオフ = 80 桁): 80/132 の桁モード切替え。
402 ドライバーのソースの注釈には、これだけでは十分でなく
403 .BR resizecons (8)
404 のようなユーザーモードのユーティリティーで、コンソールビデオカードの
405 ハードウェアレジスタを変える必要があると書かれている。
406 .TP
407 ESC [ ? 5 h
408 DECSCNM (デフォルトはオフ): 反転表示モードのセット。
409 .TP
410 ESC [ ? 6 h
411 DECOM(デフォルトはオフ): セットされた時には、カーソルのアドレッシングが、
412 スクロール範囲の左上隅からの相対位置になる。
413 .TP
414 ESC [ ? 7 h
415 DECAWM(デフォルトはオン): オートラップを設定。このモードの時は、80 桁
416 (DECCOLM がオンのときは 132 桁)を超えたグラフィックキャラクタは、
417 強制的に次の行の先頭に折り返されて表示される。
418 .TP
419 ESC [ ? 8 h
420 DECARM(デフォルトはオン): キーボードのオートリピートをオンにセット。
421 .TP
422 ESC [ ? 9 h
423 X10 マウスリポート(デフォルトはオフ): リポートモードを 1 にセット(または、
424 0 にリセット)\(em後述
425 .TP
426 ESC [ ? 25 h
427 .\"O DECTECM (default on): Make cursor visible.
428 DECTECM (デフォルトはオン): カーソルを可視(visible)にする。
429 .TP
430 ESC [ ? 1000 h
431 X11 マウスリポート(デフォルトはオフ): リポートモードを 2 にセット(または、
432 0にリセット)\(em後述
433 .\"
434 .PP
435 .B "Linux コンソールプライベート CSI シーケンス"
436 .sp
437 .\"
438 以下のシーケンスは ECMA-48 のものでも本来の VT102 のものでもでもなく、
439 Linuxコンソールドライバーに固有なシーケンスである。色は SGR パラメータで
440 表現される: 0 = 黒, 1= 赤, 2 = 緑, 3 = 茶, 4 = 青, 5 = マゼンタ,
441 6 = シアン, 7 = 白
442 .TS
443 l l.
444 ESC [ 1 ; \fIn\fP ]     下線の色を\fIn\fP にセットする。
445 ESC [ 2 ; \fIn\fP ]     ディムの色を\fIn\fP にセットする。
446 ESC [ 8 ]               現在の色のペアをデフォルト属性にする。
447 ESC [ 9 ; \fIn\fP ]     スクリーンブランク(screen blank)のタイムアウト
448         を \fIn\fP 分にセットする。
449 ESC [ 10 ; \fIn\fP ]    ベルの周波数(Hz)をセットする。
450 ESC [ 11 ; \fIn\fP ]    ベルの鳴っている時間(msec)をセットする。
451 ESC [ 12 ; \fIn\fP ]    指定のコンソールを前面に持ってくる。
452 ESC [ 13 ]              スクリーンをアンブランク(Unblank)する。
453 ESC [ 14 ]              VESA電源停止インターバル(VESA powerdown
454         interval)をセットする。
455 .TE
456 .SS 文字集合
457 .\"O The kernel knows about 4 translations of bytes into console-screen
458 .\"O symbols.
459 .\"O The four tables are: a) Latin1 \-> PC,
460 .\"O b) VT100 graphics \-> PC, c) PC \-> PC, d) user-defined.
461 カーネルは、バイト列からコンソールスクリーン符号の変換を 4 つ
462 知っている。
463 4 つの変換テーブルとは、a) Latin1 \-> PC,  b) VT100 graphics \-> PC,
464 c) PC \-> PC, d) ユーザー定義, である。
465 .PP
466 .\"O There are two character sets, called G0 and G1, and one of them
467 .\"O is the current character set.
468 .\"O (Initially G0.)
469 .\"O Typing \fB^N\fP causes G1 to become current,
470 .\"O \fB^O\fP causes G0 to become current.
471 G0 と G1 と呼ばれる二つの文字集合があり、そのうち一つが現在の
472 文字集合である(初期値は G0 )。
473 \fB^N\fP をタイプすると G1 が \fB^O\fP を入力すると G0 が現在の文字集合になる。
474 .PP
475 .\"O These variables G0 and G1 point at a translation table, and can be
476 .\"O changed by the user.
477 .\"O Initially they point at tables a) and b), respectively.
478 .\"O The sequences ESC ( B and ESC ( 0 and ESC ( U and ESC ( K cause G0 to
479 .\"O point at translation table a), b), c) and d), respectively.
480 .\"O The sequences ESC ) B and ESC ) 0 and ESC ) U and ESC ) K cause G1 to
481 .\"O point at translation table a), b), c) and d), respectively.
482 変数 G0 と G1 は変換テーブルを指しており、ユーザーにより変更できる。
483 最初はそれぞれテーブル a) と テーブル b) を指している。
484 ESC ( B 、 ESC ( 0 、 ESC ( U 、 ESC ( K のそれぞれのシーケンスにより、
485 G0 が変換テーブル a)、 b)、 c)、 d) を指すようになる。
486 また、ESC ) B 、 ESC ) 0 、 ESC ) U 、 ESC ) K のそれぞれのシーケンス
487 により、G1 が変換テーブル  a)、 b)、 c)、 d) を指すようになる。
488 .PP
489 ESC c のシーケンスは端末をリセットする。スクリーンがめちゃくちゃになった
490 時にそうすることが必要である。よくアドバイスされる "echo ^V^O" は G0
491 を現在の文字集合にするだけであり、G0 がテーブル a) を指しているという
492 保証はない。
493 いくつかのディストリビューションには、
494 .BR reset (1)
495 というプログラムが含まれるが、これはただ "echo ^[c" を実行するものである。
496 .\"O If your terminfo entry for the console is correct
497 .\"O (and has an entry rs1=\\Ec), then "tput reset" will also work.
498 もし、コンソールの terminfo エントリーが正しい(かつ rs1=\\Ec のエントリーが
499 ある)ならば、"tput reset"でも同じ効果がある。
500 .PP
501 ユーザー定義のマッピングテーブルは
502 .BR mapscrn (8)
503 を使って定義できる。
504 マッピングの結果、シンボル c が印字されるとシンボル s = map[c] が
505 ビデオメモリに送られる。s に対応するビットマップはキャラクター ROM にあり、
506 .BR setfont (8)
507 により変更可能である。
508 .SS マウストラッキング
509 .\"O The mouse tracking facility is intended to return
510 .\"O .BR xterm (1)-compatible
511 .\"O mouse status reports.
512 .\"O Because the console driver has no way to know
513 .\"O the device or type of the mouse, these reports are returned in the
514 .\"O console input stream only when the virtual terminal driver receives
515 .\"O a mouse update ioctl.
516 .\"O These ioctls must be generated by a mouse-aware
517 .\"O user-mode application such as the
518 .\"O .BR gpm (8)
519 .\"O daemon.
520 マウストラッキング機能は、
521 .BR xterm (1)-互換の
522 マウスステータスリポート(mouse
523 status reports)を返させるためのものである。
524 コンソールドライバーはマウスのデバイスや種類について知る方法が
525 ないので、仮想ターミナルドライバーがマウス更新の ioctl を受け取った時だけ、
526 マウスステータスリポートがコンソールの入力ストリームに送られる。
527 この ioctl は、
528 .BR gpm (8)
529 デーモンのようなマウス対応のユーザーモード
530 アプリケーションが発生しなければならない。
531 .PP
532 .\"O The mouse tracking escape sequences generated by
533 .\"O \fBxterm\fP(1) encode numeric parameters in a single character as
534 .\"O \fIvalue\fP+040.
535 .\"O For example, \(aq!\(aq is 1.
536 .\"O The screen coordinate system is 1-based.
537 \fBxterm\fP(1) によって生成される全てのマウス追跡エスケープシーケンスのための
538 パラメータは、数値を \fIvalue\fP+040 のように符号化し、一つの文字として
539 あらわす。
540 例えば、\(aq!\(aq は 1 になる。スクリーン座標は 1 をベースにする。
541 .PP
542 X10 互換モードでは、ボタンが押された時にマウスの位置と押されたマウスの
543 ボタンとをエンコードしたエスケープシーケンスを送る。
544 この機能は ESC [ ? 9 h を送ると有効になり ESC [ ? 9 l により無効になる。
545 ボタンが押されると \fBxterm\fP(1) は ESC [ M \fIbxy\fP (の 6 文字)を送る。
546 ここで \fIb\fP は button\-1, \fIx\fP と \fIy\fP は マウスがボタンが押された
547 時の x と y 座標である。
548 このコードはカーネルが発生するのと同じコードである。
549 .PP
550 ノーマルトラッキングモード(Normal tracking mode)(Linux 2.0.24 では
551 実装されていない)では、両方のボタンが押されたか離された時に
552 エスケープシーケンスが送られる。
553 モディファイアの情報も一緒に送られる。
554 この機能は、ESC [ ? 1000 h を送ると有効になり ESC [ ? 1000 l で無効になる。
555 ボタンが押されるか離されるかした時には、\fBxterm\fP(1) は ESC [ M
556 \fIbxy\fP を送る。
557 \fIb\fP の低位の2ビットにはボタン情報がエンコードされる:
558 0=MB1 が押された, 1=MB2 が押された, 2=MB3 が押された, 3=離された。
559 高位のビットには、ボタンが押された時にどのモディファイアがダウンしていたかが
560 エンコードされる: 4=Shift, 8=Meta, 16=Control。
561 そして、上位と下位ビットが加算される。
562 ここでも \fIx\fP と \fIy\fP は、マウスイベントが起こった時の
563 x と y 座標であり、左上の隅が(1,1)である。
564 .SS 他のターミナルとの比較
565 .\"O Many different terminal types are described, like the Linux console,
566 .\"O as being "VT100-compatible".
567 .\"O Here we discuss differences between the
568 .\"O Linux console and the two most important others, the DEC VT102 and
569 .\"O .BR xterm (1).
570 多くの異なるターミナルタイプが、Linux コンソールのように、"VT100互換"を
571 名乗っている。
572 ここでは、Linux コンソールと 2 つの最も重要なターミナルである
573 DEC VT102 と
574 .BR xterm (1)
575 との違いについて述べる。
576 .\"
577 .PP
578 .B コントロール文字の取り扱い
579 .sp
580 VT102 は以下のコントロール文字も認識する:
581 .HP
582 NUL (0x00) は無視される;
583 .HP
584 ENQ (0x05) はアンサーバックメッセージ(answerback message)を発生する;
585 .HP
586 .\"O DC1 (0x11, \fB^Q\fP, XON) resumed transmission;
587 DC1 (0x11, \fB^Q\fP, XON) は送信を再開する;
588 .HP
589 .\"O DC3 (0x13, \fB^S\fP, XOFF) caused VT100 to ignore (and stop transmitting)
590 .\"O all codes except XOFF and XON.
591 DC3 (0x13, \fB^S\fP, XOFF) は VT100 に XOFF と XON 以外のコードを無視(そして
592 送信の停止)を起こさせる。
593 .LP
594 tty ドライバーにより VT100 に似た DC1/DC3 処理をできる。
595 .LP
596 .BR xterm (1)
597 (VT100 モード)は BEL, BS, HT, LF, VT, FF, CR, SO, SI, ESC の
598 コントロール文字を認識する。
599 .\"
600 .PP
601 .B エスケープシーケンス
602 .sp
603 Linux コンソールで実装されていない VT100 コンソールシーケンスは以下の通り:
604 .TS
605 l l l.
606 ESC N   SS2     シングルシフト 2
607                 (次の文字だけ G2 文字集合を選択する)。
608 ESC O   SS3     シングルシフト 3
609                 (次の文字だけ G3 文字集合を選択する)。
610 ESC P   DCS     デバイス制御文字列 (ESC \\ で終わる)
611 ESC X   SOS     文字列の始まり。
612 ESC ^   PM      プライバシーメッセージ(ESC \\ で終わる)。
613 ESC \\  ST      文字列の終端文字。
614 ESC * ...               G2 文字集合を指定する。
615 ESC + ...               G3 文字集合を指定する。
616 .TE
617 .PP
618 .BR xterm (1)
619 (VT100 モード)は ESC c, ESC # 8, ESC >, ESC =,
620 ESC D, ESC E, ESC H, ESC M, ESC N, ESC O, ESC P ... ESC \\,
621 ESC Z を認識する("わたしは高等ビデオオプション付きの VT100 です"という
622 意味で ESC [ ? 1 ; 2 c と返答する)、ESC ^ ... ESC \\ は上述と同じ意味を
623 あらわす。ESC (, ESC ), ESC *, ESC + に続く 0, A, B を DEC 特殊文字と
624 して受け、それぞれラインドローイング(line drawing) のセット、UK、
625 US-ASCII をあらわす。
626 .PP
627 .\"O The user can configure \fBxterm\fP(1) to respond to VT220-specific
628 .\"O control sequences, and it will identify itself as a VT52, VT100, and
629 .\"O up depending on the way it is configured and initialized.
630 ユーザーは \fBxterm\fP(1) が VT220 特有のコントロールシーケンスに
631 反応するように設定でき、また設定と初期化のされかたによって
632 自分自身を VT52, VT100 などと認識する。
633 .PP
634 .\"O It accepts ESC ] (OSC) for the setting of certain resources.
635 .\"O In addition to the ECMA-48 string terminator (ST),
636 .\"O \fBxterm\fP(1) accepts a BEL to terminate an OSC string.
637 .\"O These are a few of the OSC control sequences recognized by \fBxterm\fP(1):
638 xterm は、特定のリソースの設定のために ESC ] (OSC) を受け付ける。
639 ECMA-48 の文字列終端文字 (ST) に加えて、
640 \fBxterm\fP(1) は BEL を OSC 文字列を終端するものとして受け付ける。
641 以下は \fBxterm\fP(1) が認識する OSC コントロールシーケンスの一部である。
642 .TS
643 l l.
644 .\"O ESC ] 0 ; \fItxt\fP ST     Set icon name and window title to \fItxt\fP.
645 .\"O ESC ] 1 ; \fItxt\fP ST     Set icon name to \fItxt\fP.
646 .\"O ESC ] 2 ; \fItxt\fP ST     Set window title to \fItxt\fP.
647 .\"O ESC ] 4 ; \fInum\fP; \fItxt\fP ST  Set ANSI color \fInum\fP to \fItxt\fP.
648 .\"O ESC ] 10 ; \fItxt\fP ST    Set dynamic text color to \fItxt\fP.
649 .\"O ESC ] 4 6 ; \fIname\fP ST  Change log file to \fIname\fP (normally disabled
650 .\"O    by a compile-time option)
651 .\"O ESC ] 5 0 ; \fIfn\fP ST    Set font to \fIfn\fP.
652 ESC ] 0 ; \fItxt\fP ST  アイコン名とウインドウタイトルを \fItxt\fP に
653         セットする。
654 ESC ] 1 ; \fItxt\fP ST  アイコン名を \fItxt\fP にセットする。
655 ESC ] 2 ; \fItxt\fP ST  ウインドウタイトルを \fItxt\fP にセットする。
656 ESC ] 4 ; \fInum\fP; \fItxt\fP ST       ANSI 色 \fInum\fP を \fItxt\fP にセットする。
657 ESC ] 10 ; \fI\fItxt\fP\fP ST   動的テキスト色を \fItxt\fP にセットする。
658 ESC ] 4 6 ; \fIname\fP ST       チェンジログファイルを \fIname\fP に変更する(通常は
659         コンパイル時オプションにより無効になっている)。
660 ESC ] 5 0 ; \fIfn\fP ST フォントを \fIfn\fP にセットする。
661 .TE
662 .PP
663 .\"O It recognizes the following with slightly modified meaning
664 .\"O (saving more state, behaving closer to VT100/VT220):
665 以下のものは、少し違った意味にとられる
666 (より多くの状態を保存し、より VT100/VT220 に近いふるまいをする):
667 .LP
668 .TS
669 l l l.
670 ESC 7  DECSC    カーソルの保存。
671 ESC 8  DECRC    カーソルの復元。
672 .TE
673 .PP
674 また、次のものも認識する:
675 .TS
676 l l l.
677 ESC F           カーソルをスクリーンの左下に移動する。
678                 (\fBxterm\fP(1) の \fBhpLowerleftBugCompat\fPリソースにより有効な時)
679 ESC l           (HP ターミナル毎に)メモリロック。
680                 カーソルより上のメモリをロックする。
681 ESC m           (HP ターミナル毎に)メモリロックを解除する。
682 ESC n   LS2     G2 文字集合の呼び出し。
683 ESC o   LS3     G3 文字集合の呼び出し。
684 ESC |   LS3R    G3 文字集合を GR として呼び出す。
685 ESC }   LS2R    G2 文字集合を GR として呼び出す。
686 ESC ~   LS1R    G1 文字集合を GR として呼び出す。
687 .TE
688 .PP
689 .\"O It also recognizes ESC % and provides a more complete UTF-8
690 .\"O implementation than Linux console.
691 また ESC % を認識し、Linux コンソールより更に完全な UTF-8 実装を提供する。
692 .\"
693 .PP
694 .B "CSI シーケンス"
695 .sp
696 .\"O Old versions of \fBxterm\fP(1), for example, from X11R5,
697 .\"O interpret the blink SGR as a bold SGR.
698 X11R5 由来のような、古いバージョンの \fBxterm\fP(1) はブリンク SGR を
699 ボールド SGR として解釈する。
700 .\"O Later versions which implemented ANSI colors, for example,
701 .\"O XFree86 3.1.2A in 1995, improved this by allowing
702 .\"O the blink attribute to be displayed as a color.
703 1995 年の XFree86 3.1.2A のような、ANSI カラーが実装された、より新しい
704 バージョンでは、ブリンク属性を色として表示することによってこれを
705 改善している。
706 .\"O Modern versions of xterm implement blink SGR as blinking text
707 .\"O and still allow colored text as an alternate rendering of SGRs.
708 .\"O Stock X11R6 versions did not recognize the color-setting SGRs until
709 .\"O the X11R6.8 release, which incorporated XFree86 xterm.
710 最近のバージョンの xterm はブリンク SGR をテキストをブリンクさせることで
711 実装し、さらにまた、SGR 表示の代替案として色付きのテキストも利用できる。
712 Stock X11R6 版では、XFree86 xterm が組み入れられた X11R6.8 リリースまで
713 色設定 SGR を認識しなかった。
714 .\"O All ECMA-48 CSI sequences recognized by Linux are also recognized by
715 .\"O .IR xterm ,
716 .\"O however \fBxterm\fP(1) implements several ECMA-48 and DEC control sequences
717 .\"O not recognized by Linux.
718 Linux が認識する他のすべての ECMA-48 CSI シーケンスは
719 .I xterm
720 でも認識されるが、\fBxterm\fP(1) は Linux が認識しない
721 いくつかの ECMA-48 と DEC のコントロールシーケンスも実装している。
722 .PP
723 .\"O The \fBxterm\fP(1)
724 .\"O program recognizes all of the DEC Private Mode sequences listed
725 .\"O above, but none of the Linux private-mode sequences.
726 \fBxterm\fP(1) は上述のすべての DEC プライベートモードのシーケンスを認識するが、
727 Linux プライベートモードのシーケンスはどれも認識しない。
728 .\"O For discussion of \fBxterm\fP(1)'s
729 .\"O own private-mode sequences, refer to the
730 .\"O \fIXterm Control Sequences\fP
731 .\"O document by
732 .\"O Edward Moy,
733 .\"O Stephen Gildea,
734 .\"O and Thomas E. Dickey
735 .\"O available with the X distribution.
736 \fBxterm\fP(1) 自身のプライベートモードシーケンスに関しての議論は、
737 X 配布とともに入手可能な Edward Moy, Stephen Gildea,Thomas E. Dickey による
738 \fIXterm Control Sequences\fP
739 ドキュメントを参照されたい。
740 .\"O That document, though terse, is much longer than this manual page.
741 .\"O For a chronological overview,
742 このドキュメントは、簡潔なものであるが、このマニュアルページより
743 遥かに長いものである。
744 年代順の概観としては、
745 .PP
746 .in +4n
747 http://invisible-island.net/xterm/xterm.log.html
748 .in
749 .PP
750 .\"O details changes to xterm.
751 には xterm の変更の詳細がある。
752 .PP
753 .\"O The \fIvttest\fP program
754 \fIvttest\fP は
755 .PP
756 .in +4n
757 http://invisible-island.net/vttest/
758 .in
759 .PP
760 .\"O demonstrates many of these control sequences.
761 で入手でき、これらのコントロールシーケンスの多くに関するデモを行う。
762 .\"O The \fBxterm\fP(1) source distribution also contains sample
763 .\"O scripts which exercise other features.
764 \fBxterm\fP(1) ソース配布パッケージには
765 その他の機能を学ぶことが出来るサンプルスクリプトが入っている。
766 .\"O .SH NOTES
767 .SH 注意
768 .\"O ESC 8 (DECRC) is not able to restore the character set changed with
769 .\"O ESC %.
770 ESC 8 (DECRC) は ESC % で変更された文字集合を復元することはできない。
771 .SH バグ
772 .\"O In 2.0.23, CSI is broken, and NUL is not ignored inside
773 .\"O escape sequences.
774 2.0.23 では CSI が壊れていて、エスケープシーケンス中の NUL が
775 無視されない。
776 .PP
777 .\"O Some older kernel versions (after 2.0) interpret 8-bit control
778 .\"O sequences.
779 .\"O These "C1 controls" use codes between 128 and 159 to replace
780 .\"O ESC [, ESC ] and similar two-byte control sequence initiators.
781 .\"O There are fragments of that in modern kernels (either overlooked or
782 .\"O broken by changes to support UTF-8),
783 .\"O but the implementation is incomplete and should be regarded
784 .\"O as unreliable.
785 古いバージョン(2.0 以降)のカーネルには、8 ビット制御シーケンスを解釈する。
786 これらの "C1 コントロール" は ESC [, ESC ] および同様な制御シーケンス
787 起動子を置き換えるために 128 から 159 のコードを使う。
788 新しいカーネルでは (UTF-8 対応の変更時に見落とされたか壊れたために)
789 寸断しているが、実装は不完全で信頼できないものと評価されている。
790 .PP
791 .\"O Linux "private mode" sequences do not follow the rules in ECMA-48
792 .\"O for private mode control sequences.
793 .\"O In particular, those ending with ] do not use a standard terminating
794 .\"O character.
795 Linux "プライベートモード" シーケンスは ECMA-48 のプライベートモード
796 コントロールシーケンスのルールに従っていない。
797 特に、 ] で終わるものは標準終端文字を使えない。
798 .\"O The OSC (set palette) sequence is a greater problem,
799 .\"O since \fBxterm\fP(1) may interpret this as a control sequence
800 .\"O which requires a string terminator (ST).
801 OSC(パレット設定)シーケンスは大きな問題がある。
802 \fBxterm\fP(1) はこれを文字列終端文字 (ST) が必要なコントロールシーケンスと
803 解釈するかもしれないからである。
804 .\"O Unlike the \fBsetterm\fP(1) sequences which will be ignored (since
805 .\"O they are invalid control sequences), the palette sequence will make
806 .\"O \fBxterm\fP(1) appear to hang (though pressing the return-key
807 .\"O will fix that).
808 (不正なコントロールシーケンスなので)無視される \fBsetterm\fP(1) シーケンスと
809 違い、パレットシーケンスは \fBxterm\fP(1) をハングさせるかもしれない
810 (しかしリターンキーを押すことで回復できる)。
811 .\"O To accommodate applications which have been hardcoded to use Linux
812 .\"O control sequences,
813 .\"O set the \fBxterm\fP(1) resource \fBbrokenLinuxOSC\fP to true.
814 Linux コントロールシーケンスをハードコードしているアプリケーションに
815 適応させるには、\fBxterm\fP(1) リソースの \fBbrokenLinuxOSC\fP を
816 真 (true) に設定する。
817 .PP
818 .\"O An older version of this document implied that Linux recognizes the
819 .\"O ECMA-48 control sequence for invisible text.
820 .\"O It is ignored.
821 このドキュメントの古いバージョンでは、Linux が ECMA-48 の不可視テキストの
822 コントロールシーケンスを認識するかのように書かれていた。
823 これは無視される。
824 .SH 関連項目
825 .BR console (4),
826 .BR console_ioctl (4),
827 .BR charsets (7)