Manpages

名 前

console_codes − Linux コ ン ソ ー ル の エ ス ケ ー プ シ ー ケ ン ス と コ ン ト ロ ー ル シ ー ケ ン ス

説 明

Linux コ ン ソ ー ル は VT102 と ECMA−48/ISO6429/ANSI X3.64 端 末 コ ン ソ ー ル の サ ブ セ ッ ト に 、 カ ラ ー パ レ ッ ト や 文 字 集 合 の マ ッ ピ ン グ な ど を 変 更 す る プ ラ イ ベ ー ト モ ー ド シ ー ケ ン ス を 加 え て 実 装 さ れ て い る 。 以 下 の 表 で は 、 機 能 の ECMA−48 ま た は DEC の ニ ー モ ニ ク ス (DECで 始 ま れ ば 後 者 )を 2 番 目 の 桁 に 記 す 。 ニ ー モ ニ ク ス の な い も の は ECMA−48 で も VT102 で も な い も の で あ る 。 す べ て の 出 力 作 業 が 終 っ て 、 実 際 に 印 字 す る た め に 文 字 の ス ト リ ー ム が コ ン ソ ー ル ド ラ イ バ ー に 届 い た 時 、 最 初 に 行 な わ れ る の が 、 処 理 用 コ ー ド か ら 印 字 用 の コ ー ド へ の 変 換 で あ る 。 も し 、 コ ン ソ ー ル が UTF−8 モ ー ド な ら 、 入 っ て 来 た バ イ ト (byte)は 16 ビ ッ ト の Unicode に 組 み 立 て ら れ る 。 そ う で な け れ ば 、 そ れ ぞ れ の バ イ ト は 現 在 の (各 バ イ ト を Unicode の 値 に 変 換 す る )マ ッ ピ ン グ テ ー ブ ル に 従 っ て 変 換 さ れ る 。 こ れ に 関 し て は 下 の キ ャ ラ ク タ ー セ ッ ト (Charcter Sets) 節 を 参 照 の こ と 。 通 常 、 Unicode の 値 は フ ォ ン ト イ ン デ ッ ク ス (font index) に 変 換 さ れ 、 ビ デ オ メ モ リ ー に 蓄 え ら れ る 。 そ し て (ビ デ オ ROM 中 に 見 付 け ら れ る ) 対 応 す る グ リ フ (glyph)が 画 面 に 現 れ る 。 Unicode を 用 い る と 、 (PC 互 換 機 の 設 計 で は ) 512 の 異 な っ た グ リ フ を 同 時 に 利 用 で き る よ う に な る 。 現 在 の Unicode の 値 が コ ン ト ロ ー ル 文 字 で あ る か エ ス ケ ー プ シ ー ケ ン ス を 処 理 し て い る 時 に は 、 そ の 値 は 特 別 に 扱 わ れ る 。 フ ォ ン ト の イ ン デ ッ ク ス に 変 換 さ れ て グ リ フ と し て 表 示 さ れ る 代 わ り に 、 カ ー ソ ル の 移 動 や そ の 他 の コ ン ト ロ ー ル 機 能 を 実 行 さ せ る 。 詳 し い こ と は 、 後 述 の 「 LINUX コ ン ソ ー ル コ ン ト ロ ー ル 」 の セ ク シ ョ ン を 参 照 の こ と 。 一 般 に 端 末 コ ン ト ロ ー ル コ ー ド を プ ロ グ ラ ム 中 に 直 接 記 述 す る の は 良 い こ と で は な い 。 Linuxで は 、 端 末 に お い て 実 現 可 能 な 操 作 の デ ー タ ベ ー ス で あ る terminfo(5) を サ ポ ー ト し て い る 。 コ ン ソ ー ル エ ス ケ ー プ シ ー ケ ン ス を わ ざ わ ざ 入 力 す る よ り も 、 ほ と ん ど の 場 合 terminfo の 情 報 を 参 照 す る ncurses(3), tput(1), や reset(1) な ど の ス ク リ ー ン ラ イ ブ ラ リ や ユ ー テ ィ リ テ ィ ー を 使 い た い と 思 う で あ ろ う 。

Linux コ ン ソ ー ル コ ン ト ロ ー ル こ の 章 で は Linux コ ン ソ ー ル に お い て 特 殊 な 機 能 (つ ま り 、 現 在 の カ ー ソ ル 位 置 に 文 字 の イ メ ー ジ を 印 字 す る 以 外 の こ と )を 起 こ さ せ る 全 て の コ ン ト ロ ー ル 文 字 と エ ス ケ ー プ シ ー ケ ン ス に つ い て 述 べ る 。 コ ン ト ロ ー ル 文 字 コ ン ト ロ ー ル 文 字 と は 、 (マ ッ ピ ン グ テ ー ブ ル に よ る 変 換 前 の コ ー ド が ) 00 (NUL), 07 (BEL), 08 (BS), 09 (HT), 0a (LF), 0b (VT), 0c (FF), 0d (CR), 0e (SO), 0f (SI), 18 (CAN), 1a (SUB), 1b (ESC), 7f (DEL) の 14 の コ ー ド の う ち の ど れ か で あ る 文 字 で あ る 。 "コ ン ト ロ ー ル 文 字 表 示 (display control characters)"モ ー ド (後 述 )を 設 定 す る と 、 07, 09, 0b, 18, 1a, 7f を グ リ フ と し て 表 示 す る こ と が で き る 。 一 方 、 UTF−8 モ ー ド で は 、 00−1f の 全 て の コ ー ド は 、 コ ン ト ロ ー ル 文 字 表 示 モ ー ド が 指 定 さ れ た 場 合 で も コ ン ト ロ ー ル 文 字 と し て 扱 わ れ る 。 コ ン ト ロ ー ル 文 字 が あ る 時 に は 、 そ れ は す ぐ に (た と え エ ス ケ ー プ シ ー ケ ン ス の 途 中 で も )実 行 さ れ 、 破 棄 さ れ る 。 エ ス ケ ー プ シ ー ケ ン ス は 次 の 文 字 か ら 続 け ら れ る (し か し 、 ESC は 新 し い エ ス ケ ー プ シ ー ケ ン ス を 始 め る の で 、 前 の 終 了 し て い な い エ ス ケ ー プ シ ー ケ ン ス が 中 止 さ れ る 可 能 性 が あ る 。 さ ら に 、 CAN と SUB は ど ん な エ ス ケ ー プ シ ー ケ ン ス も 中 止 す る )。 認 め ら れ て い る コ ン ト ロ ー ル 文 字 は 、 BEL, BS, HT, LF, VT, FF, CR, SO, SI, CAN, SUB, ESC, DEL, CSI で あ る 。 こ れ ら は 期 待 ど お り の 動 作 を す る :

BEL (0x07, ^G) は ビ ー プ 音 を 鳴 ら す ;

BS (0x08, ^H) は バ ッ ク ス ペ ー ス (た だ し 、 行 頭 は 越 え な い );

HT (0x09, ^I) は 次 の タ ブ ス ト ッ プ (tab stop)へ 移 動 す る 、 そ こ か ら 行 末 ま で に タ ブ ス ト ッ プ が 無 い 場 合 は 行 の 終 り に 移 動 す る ;

LF (0x0A, ^J), VT (0x0B, ^K), FF (0x0C, ^L) こ れ ら は 全 て ラ イ ン フ ィ ー ド (linefeed)を 与 え る ; LF/NL (ニ ュ ー ラ イ ン モ ー ド (new line mode))が セ ッ ト さ れ て い れ ば キ ャ リ ッ ジ リ タ ー ン も ア ク テ ィ ブ に す る ;

CR (0x0D, ^M) は キ ャ リ ッ ジ リ タ ー ン を 与 え る ;

SO (0x0E, ^N) は G1 文 字 集 合 を ア ク テ ィ ブ に す る 。

SI (0x0F, ^O) は G0 文 字 集 合 を ア ク テ ィ ブ に す る ;

CAN (0x18, ^X) と SUB (0x1A, ^Z) は エ ス ケ ー プ シ ー ケ ン ス を 中 断 す る ;

ESC (0x1B, ^[) は エ ス ケ ー プ シ ー ケ ン ス を 始 め る 。

DEL (0x7F) は 無 視 さ れ る ;

CSI (0x9B) は ESC [ と 等 価 。 エ ス ケ ー プ シ ー ケ ン ス で あ る が CSI シ ー ケ ン ス で な い も の

ECMA−48 CSI シ ー ケ ン ス

CSI (ま た は ESC [ ) の あ と に 、 最 大 で NPAR (16) 個 の セ ミ コ ロ ン で 区 切 ら れ た 10 進 数 の パ ラ メ ー タ ー シ ー ケ ン ス が 続 く 。 空 で あ る か そ こ に な い パ ラ メ ー タ ー は 0 と さ れ る 。 パ ラ メ ー タ ー シ ー ケ ン ス の 前 に は ひ と つ の ク エ ス チ ョ ン マ ー ク が つ く こ と が あ る 。 し か し 、 CSI [ (ま た は ESC [ [ ) の 後 で は 、 一 文 字 が 読 ま れ 、 こ の す べ て の パ ラ メ ー タ ー シ ー ケ ン ス が 無 視 さ れ る (要 す る に フ ァ ン ク シ ョ ン キ ー の エ コ ー は 無 視 さ れ る と い う こ と で あ る )。

CSI シ ー ケ ン ス の 動 作 は 、 そ の 最 後 の 文 字 に よ っ て 決 ま る 。

ECMA−48 グ ラ フ ィ ク ス レ ン デ ィ シ ョ ン (Graphics Rendition)の 設 定

ECMA−48 SGR シ ー ケ ン ス ESC [ <パ ラ メ ー タ ー > m は 表 示 属 性 を 設 定 す る 。 セ ミ コ ロ ン で 区 切 る こ と で 、 同 じ シ ー ケ ン ス で い く つ か の 属 性 を 設 定 で き る 。 空 パ ラ メ ー タ ー (セ ミ コ ロ ン か 文 字 列 開 始 文 字 か 文 字 列 終 端 文 字 の 間 )は ゼ ロ と 解 釈 さ れ る 。

ECMA−48 モ ー ド ス イ ッ チ (Mode Switches)

ESC [ 3 h

DECCRM (デ フ ォ ル ト で は オ フ ): コ ン ト ロ ー ル 文 字 を 表 示 す る 。

ESC [ 4 h

DECIM (デ フ ォ ル ト で は オ フ ): 挿 入 モ ー ド に す る 。

ESC [ 20 h

LF/NL (デ フ ォ ル ト で は オ フ ): LF, VT, FFを エ コ ー し た あ と 自 動 的 CR を つ け る 。

ECMA−48 状 態 リ ポ ー ト コ マ ン ド (Status Report Commands)
ESC [ 5 n デ バ イ ス 状 態 の リ ポ ー ト (DSR): 返 事 は ESC [ 0 n (端 末 OK).
ESC [ 6 n カ ー ソ ル 位 置 の リ ポ ー ト (CPR): 返 事 は ESC [ y ; x R、 x,y は カ ー ソ ル の 位 置 を あ ら わ す 。

DEC プ ラ イ ベ ー ト モ ー ド (DECSET/DECRST) シ ー ケ ン ス こ れ ら は ECMA−48 で は 記 述 さ れ て い な い 。 こ こ で は 、 セ ッ ト モ ー ド シ ー ケ ン ス (Set Mode sequences)を 記 載 す る ; 最 後 の 'h' を 'l' に 置 き 換 え る と リ セ ッ ト モ ー ド シ ー ケ ン ス (Reset Mode sequences)に な る 。
ESC [ ? 1 h

DECCKM (デ フ ォ ル ト は オ フ ): セ ッ ト さ れ た 時 に は カ ー ソ ル キ ー は ESC [ で は な く ESC O を 前 に つ け て 送 る 。

ESC [ ? 3 h

DECCOLM (デ フ ォ ル ト は オ フ = 80 桁 ): 80/132 の 桁 モ ー ド 切 替 え 。 ド ラ イ バ ー の ソ ー ス の 注 釈 に は 、 こ れ だ け で は 十 分 で な く resizecons(8) の よ う な ユ ー ザ ー モ ー ド の ユ ー テ ィ リ テ ィ ー で 、 コ ン ソ ー ル ビ デ オ カ ー ド の ハ ー ド ウ ェ ア レ ジ ス タ ー を 変 え る 必 要 が あ る と 書 か れ て い る 。

ESC [ ? 5 h

DECSCNM (デ フ ォ ル ト は オ フ ): 反 転 表 示 モ ー ド の セ ッ ト 。

ESC [ ? 6 h

DECOM(デ フ ォ ル ト は オ フ ): セ ッ ト さ れ た 時 に は 、 カ ー ソ ル の ア ド レ ッ シ ン グ が 、 ス ク ロ ー ル 範 囲 の 左 上 隅 か ら の 相 対 位 置 に な る 。

ESC [ ? 7 h

DECAWM(デ フ ォ ル ト は オ ン ): オ ー ト ラ ッ プ を 設 定 。 こ の モ ー ド の 時 は 、 80 桁 (DECCOLM が オ ン の と き は 132 桁 )を 超 え た グ ラ フ ィ ッ ク キ ャ ラ ク タ ー は 、 強 制 的 に 次 の 行 の 先 頭 に 折 り 返 さ れ て 表 示 さ れ る 。

ESC [ ? 8 h

DECARM(デ フ ォ ル ト は オ ン ): キ ー ボ ー ド の オ ー ト リ ピ ー ト を オ ン に セ ッ ト 。

ESC [ ? 9 h

X10 マ ウ ス リ ポ ー ト (デ フ ォ ル ト は オ フ ): リ ポ ー ト モ ー ド を 1 に セ ッ ト (ま た は 、 0 に リ セ ッ ト )—後 述

ESC [ ? 25 h

DECTECM (デ フ ォ ル ト は オ ン ): カ ー ソ ル を 可 視 (visible)に す る 。

ESC [ ? 1000 h

X11 マ ウ ス リ ポ ー ト (デ フ ォ ル ト は オ フ ): リ ポ ー ト モ ー ド を 2 に セ ッ ト (ま た は 、 0に リ セ ッ ト )—後 述

Linux コ ン ソ ー ル プ ラ イ ベ ー ト CSI シ ー ケ ン ス 以 下 の シ ー ケ ン ス は ECMA−48 の も の で も 本 来 の VT102 の も の で も で も な く 、 Linuxコ ン ソ ー ル ド ラ イ バ ー に 固 有 な シ ー ケ ン ス で あ る 。 色 は SGR パ ラ メ ー タ ー で 表 現 さ れ る : 0 = 黒 , 1= 赤 , 2 = 緑 , 3 = 茶 , 4 = 青 , 5 = マ ゼ ン タ , 6 = シ ア ン , 7 = 白

文 字 集 合 カ ー ネ ル は 、 バ イ ト 列 か ら コ ン ソ ー ル ス ク リ ー ン 符 号 の 変 換 を 4 つ 知 っ て い る 。 4 つ の 変 換 テ ー ブ ル と は 、 a) Latin1 −> PC, b) VT100 graphics −> PC, c) PC −> PC, d) ユ ー ザ ー 定 義 , で あ る 。

G0 と G1 と 呼 ば れ る 二 つ の 文 字 集 合 が あ り 、 そ の う ち 一 つ が 現 在 の 文 字 集 合 で あ る (初 期 値 は G0 )。 ^N を タ イ プ す る と G1 が ^O を 入 力 す る と G0 が 現 在 の 文 字 集 合 に な る 。 変 数 G0 と G1 は 変 換 テ ー ブ ル を 指 し て お り 、 ユ ー ザ ー に よ り 変 更 で き る 。 最 初 は そ れ ぞ れ テ ー ブ ル a) と テ ー ブ ル b) を 指 し て い る 。 ESC ( B 、 ESC ( 0 、 ESC ( U 、 ESC ( K の そ れ ぞ れ の シ ー ケ ン ス に よ り 、 G0 が 変 換 テ ー ブ ル a)、 b)、 c)、 d) を 指 す よ う に な る 。 ま た 、 ESC ) B 、 ESC ) 0 、 ESC ) U 、 ESC ) K の そ れ ぞ れ の シ ー ケ ン ス に よ り 、 G1 が 変 換 テ ー ブ ル a)、 b)、 c)、 d) を 指 す よ う に な る 。

ESC c の シ ー ケ ン ス は 端 末 を リ セ ッ ト す る 。 ス ク リ ー ン が め ち ゃ く ち ゃ に な っ た 時 に そ う す る こ と が 必 要 で あ る 。 よ く ア ド バ イ ス さ れ る "echo ^V^O" は G0 を 現 在 の 文 字 集 合 に す る だ け で あ り 、 G0 が テ ー ブ ル a) を 指 し て い る と い う 保 証 は な い 。 い く つ か の デ ィ ス ト リ ビ ュ ー シ ョ ン に は 、 reset(1) と い う プ ロ グ ラ ム が 含 ま れ る が 、 こ れ は た だ "echo ^[c" を 実 行 す る も の で あ る 。 も し 、 コ ン ソ ー ル の terminfo エ ン ト リ ー が 正 し い (か つ rs1=\Ec の エ ン ト リ ー が あ る )な ら ば 、 "tput reset"で も 同 じ 効 果 が あ る 。 ユ ー ザ ー 定 義 の マ ッ ピ ン グ テ ー ブ ル は mapscrn(8) を 使 っ て 定 義 で き る 。 マ ッ ピ ン グ の 結 果 、 シ ン ボ ル c が 印 字 さ れ る と シ ン ボ ル s = map[c] が ビ デ オ メ モ リ ー に 送 ら れ る 。 s に 対 応 す る ビ ッ ト マ ッ プ は キ ャ ラ ク タ ー ROM に あ り 、 setfont(8) に よ り 変 更 可 能 で あ る 。 マ ウ ス ト ラ ッ キ ン グ マ ウ ス ト ラ ッ キ ン グ 機 能 は 、 xterm(1)−互 換 の マ ウ ス ス テ ー タ ス リ ポ ー ト (mouse status reports)を 返 さ せ る た め の も の で あ る 。 コ ン ソ ー ル ド ラ イ バ ー は マ ウ ス の デ バ イ ス や 種 類 に つ い て 知 る 方 法 が な い の で 、 仮 想 タ ー ミ ナ ル ド ラ イ バ ー が マ ウ ス 更 新 の ioctl を 受 け 取 っ た 時 だ け 、 マ ウ ス ス テ ー タ ス リ ポ ー ト が コ ン ソ ー ル の 入 力 ス ト リ ー ム に 送 ら れ る 。 こ の ioctl は 、 gpm(8) デ ー モ ン の よ う な マ ウ ス 対 応 の ユ ー ザ ー モ ー ド ア プ リ ケ ー シ ョ ン が 発 生 し な け れ ば な ら な い 。

xterm(1) に よ っ て 生 成 さ れ る 全 て の マ ウ ス 追 跡 エ ス ケ ー プ シ ー ケ ン ス の た め の パ ラ メ ー タ ー は 、 数 値 を value+040 の よ う に 符 号 化 し 、 一 つ の 文 字 と し て あ ら わ す 。 例 え ば 、 '!' は 1 に な る 。 ス ク リ ー ン 座 標 は 1 を ベ ー ス に す る 。

X10 互 換 モ ー ド で は 、 ボ タ ン が 押 さ れ た 時 に マ ウ ス の 位 置 と 押 さ れ た マ ウ ス の ボ タ ン と を エ ン コ ー ド し た エ ス ケ ー プ シ ー ケ ン ス を 送 る 。 こ の 機 能 は ESC [ ? 9 h を 送 る と 有 効 に な り ESC [ ? 9 l に よ り 無 効 に な る 。 ボ タ ン が 押 さ れ る と xterm(1) は ESC [ M bxy (の 6 文 字 )を 送 る 。 こ こ で b は button−1, xy は マ ウ ス が ボ タ ン が 押 さ れ た 時 の x と y 座 標 で あ る 。 こ の コ ー ド は カ ー ネ ル が 発 生 す る の と 同 じ コ ー ド で あ る 。 ノ ー マ ル ト ラ ッ キ ン グ モ ー ド (Normal tracking mode)(Linux 2.0.24 で は 実 装 さ れ て い な い )で は 、 両 方 の ボ タ ン が 押 さ れ た か 離 さ れ た 時 に エ ス ケ ー プ シ ー ケ ン ス が 送 ら れ る 。 モ デ ィ フ ァ イ ア の 情 報 も 一 緒 に 送 ら れ る 。 こ の 機 能 は 、 ESC [ ? 1000 h を 送 る と 有 効 に な り ESC [ ? 1000 l で 無 効 に な る 。 ボ タ ン が 押 さ れ る か 離 さ れ る か し た 時 に は 、 xterm(1) は ESC [ M bxy を 送 る 。 b の 低 位 の 2ビ ッ ト に は ボ タ ン 情 報 が エ ン コ ー ド さ れ る : 0=MB1 が 押 さ れ た , 1=MB2 が 押 さ れ た , 2=MB3 が 押 さ れ た , 3=離 さ れ た 。 高 位 の ビ ッ ト に は 、 ボ タ ン が 押 さ れ た 時 に ど の モ デ ィ フ ァ イ ア が ダ ウ ン し て い た か が エ ン コ ー ド さ れ る : 4=Shift, 8=Meta, 16=Control。 そ し て 、 上 位 と 下 位 ビ ッ ト が 加 算 さ れ る 。 こ こ で も xy は 、 マ ウ ス イ ベ ン ト が 起 こ っ た 時 の x と y 座 標 で あ り 、 左 上 の 隅 が (1,1)で あ る 。 他 の タ ー ミ ナ ル と の 比 較 多 く の 異 な る タ ー ミ ナ ル タ イ プ が 、 Linux コ ン ソ ー ル の よ う に 、 "VT100互 換 "を 名 乗 っ て い る 。 こ こ で は 、 Linux コ ン ソ ー ル と 2 つ の 最 も 重 要 な タ ー ミ ナ ル で あ る DEC VT102 と xterm(1) と の 違 い に つ い て 述 べ る 。 コ ン ト ロ ー ル 文 字 の 取 り 扱 い

VT102 は 以 下 の コ ン ト ロ ー ル 文 字 も 認 識 す る :

NUL (0x00) は 無 視 さ れ る ;

ENQ (0x05) は ア ン サ ー バ ッ ク メ ッ セ ー ジ (answerback message)を 発 生 す る ;

DC1 (0x11, ^Q, XON) は 送 信 を 再 開 す る ;

DC3 (0x13, ^S, XOFF) は VT100 に XOFF と XON 以 外 の コ ー ド を 無 視 (そ し て 送 信 の 停 止 )を 起 こ さ せ る 。 端 末 ド ラ イ バ ー に よ り VT100 に 似 た DC1/DC3 処 理 を 有 効 に す る 。

xterm(1) (VT100 モ ー ド )は BEL, BS, HT, LF, VT, FF, CR, SO, SI, ESC の コ ン ト ロ ー ル 文 字 を 認 識 す る 。 エ ス ケ ー プ シ ー ケ ン ス

Linux コ ン ソ ー ル で 実 装 さ れ て い な い VT100 コ ン ソ ー ル シ ー ケ ン ス は 以 下 の 通 り :

xterm(1) (VT100 モ ー ド )は ESC c, ESC # 8, ESC >, ESC =, ESC D, ESC E, ESC H, ESC M, ESC N, ESC O, ESC P ... ESC \, ESC Z を 認 識 す る ("わ た し は 高 等 ビ デ オ オ プ シ ョ ン 付 き の VT100 で す "と い う 意 味 で ESC [ ? 1 ; 2 c と 返 答 す る )、 ESC ^ ... ESC \ は 上 述 と 同 じ 意 味 を あ ら わ す 。 ESC (, ESC ), ESC *, ESC + に 続 く 0, A, B を DEC 特 殊 文 字 と し て 受 け 、 そ れ ぞ れ ラ イ ン ド ロ ー イ ン グ (line drawing) の セ ッ ト 、 UK、 US−ASCII を あ ら わ す 。 ユ ー ザ ー は xterm(1) が VT220 特 有 の コ ン ト ロ ー ル シ ー ケ ン ス に 反 応 す る よ う に 設 定 で き 、 ま た 設 定 と 初 期 化 の さ れ か た に よ っ て 自 分 自 身 を VT52, VT100 な ど と 認 識 す る 。

xterm は 、 特 定 の リ ソ ー ス の 設 定 の た め に ESC ] (OSC) を 受 け 付 け る 。 ECMA−48 の 文 字 列 終 端 文 字 (ST) に 加 え て 、 xterm(1) は BEL を OSC 文 字 列 を 終 端 す る も の と し て 受 け 付 け る 。 以 下 は xterm(1) が 認 識 す る OSC コ ン ト ロ ー ル シ ー ケ ン ス の 一 部 で あ る 。

以 下 の も の は 、 少 し 違 っ た 意 味 に と ら れ る (よ り 多 く の 状 態 を 保 存 し 、 よ り VT100/VT220 に 近 い ふ る ま い を す る ):

ま た 、 次 の も の も 認 識 す る :

ま た ESC % を 認 識 し 、 Linux コ ン ソ ー ル よ り 更 に 完 全 な UTF−8 実 装 を 提 供 す る 。

CSI シ ー ケ ン ス

X11R5 由 来 の よ う な 、 古 い バ ー ジ ョ ン の xterm(1) は ブ リ ン ク SGR を ボ ー ル ド SGR と し て 解 釈 す る 。 1995 年 の XFree86 3.1.2A の よ う な 、 ANSI カ ラ ー が 実 装 さ れ た 、 よ り 新 し い バ ー ジ ョ ン で は 、 ブ リ ン ク 属 性 を 色 と し て 表 示 す る こ と に よ っ て こ れ を 改 善 し て い る 。 最 近 の バ ー ジ ョ ン の xterm は ブ リ ン ク SGR を テ キ ス ト を ブ リ ン ク さ せ る こ と で 実 装 し 、 さ ら に ま た 、 SGR 表 示 の 代 替 案 と し て 色 付 き の テ キ ス ト も 利 用 で き る 。 Stock X11R6 版 で は 、 XFree86 xterm が 組 み 入 れ ら れ た X11R6.8 リ リ ー ス ま で 色 設 定 SGR を 認 識 し な か っ た 。 Linux が 認 識 す る 他 の す べ て の ECMA−48 CSI シ ー ケ ン ス は xterm で も 認 識 さ れ る が 、 xterm(1) は Linux が 認 識 し な い い く つ か の ECMA−48 と DEC の コ ン ト ロ ー ル シ ー ケ ン ス も 実 装 し て い る 。

xterm(1) は 上 述 の す べ て の DEC プ ラ イ ベ ー ト モ ー ド の シ ー ケ ン ス を 認 識 す る が 、 Linux プ ラ イ ベ ー ト モ ー ド の シ ー ケ ン ス は ど れ も 認 識 し な い 。 xterm(1) 自 身 の プ ラ イ ベ ー ト モ ー ド シ ー ケ ン ス に 関 し て の 議 論 は 、 X 配 布 と と も に 入 手 可 能 な Edward Moy, Stephen Gildea,Thomas E. Dickey に よ る Xterm Control Sequences ド キ ュ メ ン ト を 参 照 さ れ た い 。 こ の ド キ ュ メ ン ト は 、 簡 潔 な も の で あ る が 、 こ の マ ニ ュ ア ル ペ ー ジ よ り 遥 か に 長 い も の で あ る 。 年 代 順 の 概 観 と し て は 、

http://invisible-island.net/xterm/xterm.log.html">http://invisible-island.net/xterm/xterm.log.html に は xterm の 変 更 の 詳 細 が あ る 。

vttest

http://invisible-island.net/vttest/">http://invisible-island.net/vttest/ で 入 手 で き 、 こ れ ら の コ ン ト ロ ー ル シ ー ケ ン ス の 多 く に 関 す る デ モ を 行 う 。 xterm(1) ソ ー ス 配 布 パ ッ ケ ー ジ に は そ の 他 の 機 能 を 学 ぶ こ と が 出 来 る サ ン プ ル ス ク リ プ ト が 入 っ て い る 。

注 意

ESC 8 (DECRC) は ESC % で 変 更 さ れ た 文 字 集 合 を 復 元 す る こ と は で き な い 。

バ グ

2.0.23 で は CSI が 壊 れ て い て 、 エ ス ケ ー プ シ ー ケ ン ス 中 の NUL が 無 視 さ れ な い 。 古 い バ ー ジ ョ ン (2.0 以 降 )の カ ー ネ ル に は 、 8 ビ ッ ト 制 御 シ ー ケ ン ス を 解 釈 す る 。 こ れ ら の "C1 コ ン ト ロ ー ル " は ESC [, ESC ] お よ び 同 様 な 制 御 シ ー ケ ン ス 起 動 子 を 置 き 換 え る た め に 128 か ら 159 の コ ー ド を 使 う 。 新 し い カ ー ネ ル で は (UTF−8 対 応 の 変 更 時 に 見 落 と さ れ た か 壊 れ た た め に ) 寸 断 し て い る が 、 実 装 は 不 完 全 で 信 頼 で き な い も の と 評 価 さ れ て い る 。

Linux "プ ラ イ ベ ー ト モ ー ド " シ ー ケ ン ス は ECMA−48 の プ ラ イ ベ ー ト モ ー ド コ ン ト ロ ー ル シ ー ケ ン ス の ル ー ル に 従 っ て い な い 。 特 に 、 ] で 終 わ る も の は 標 準 終 端 文 字 を 使 え な い 。 OSC(パ レ ッ ト 設 定 )シ ー ケ ン ス は 大 き な 問 題 が あ る 。 xterm(1) は こ れ を 文 字 列 終 端 文 字 (ST) が 必 要 な コ ン ト ロ ー ル シ ー ケ ン ス と 解 釈 す る か も し れ な い か ら で あ る 。 (不 正 な コ ン ト ロ ー ル シ ー ケ ン ス な の で )無 視 さ れ る setterm(1) シ ー ケ ン ス と 違 い 、 パ レ ッ ト シ ー ケ ン ス は xterm(1) を ハ ン グ さ せ る か も し れ な い (し か し リ タ ー ン キ ー を 押 す こ と で 回 復 で き る )。 Linux コ ン ト ロ ー ル シ ー ケ ン ス を ハ ー ド コ ー ド し て い る ア プ リ ケ ー シ ョ ン に 適 応 さ せ る に は 、 xterm(1) リ ソ ー ス の brokenLinuxOSC を 真 (true) に 設 定 す る 。 こ の ド キ ュ メ ン ト の 古 い バ ー ジ ョ ン で は 、 Linux が ECMA−48 の 不 可 視 テ キ ス ト の コ ン ト ロ ー ル シ ー ケ ン ス を 認 識 す る か の よ う に 書 か れ て い た 。 こ れ は 無 視 さ れ る 。

関 連 項 目

console(4), console_ioctl(4), charsets(7)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。