-- ≪ ≫ -- akinomyoga/contra :: Control functions

Control functions

制御機能 一般論

制御機能 (control functions) とは端末などでの文字列の交換(やりとり)に於いて、 通常の文字列の中に埋め込まれる特定のバイト列 (シーケンス) によって指定・実行される端末などの機能のことである。 一つ一つの制御機能には名称 (name) と略号 (acronym) が与えられ、それぞれ例えば以下の様な目的で使われる。

シーケンスが使われる場所は二つに分けることができる。 アプリケーションからの出力 (アプリケーションから端末に対して送られるバイト列) では端末制御の為に使われる。 アプリケーションへの入力 (端末からアプリケーションに対して送られるバイト列) の中では端末の応答やユーザの入力を伝達する為に使われる。 シーケンスは、これらの2つの場所でそれぞれ独立な体系を持っている。 つまり、片方で或る意味を持つバイト列は他方では全く異なる意味を持つ。 この文書では便宜のため、 アプリケーションからの出力に使われる物を制御の用途のシーケンスとし、 入力に使われる物を応答 (response) の用途のシーケンスと呼ぶ事にする。 この文書では特に制御の用途のシーケンスを中心に扱い、特に断りがなければこれを指す。

※注意: この文書に於いて小文字またはアンダースコアから始まる略号はこの文書内だけで通じる便宜上の略号である事に注意する。 各種規格で定義される制御機能及び後述のモード・モード設定の名称と略号は、 一般の単語と区別する為に全て大文字で与えられる。 様々な端末の持つ独自の制御機能の名称は必ずしも大文字ではないが、 略号については全て大文字でつけられるのが普通である。 更に一部の制御機能には名称・略号が割り当てられていない。 独自モードについては名称・略号が割り当てられていない物が多くある。 独自モード設定については名称・略号が割り当てられている事は稀である。 この文書では名前の割り当てられていない制御機能・モードに対して独自の略号を与える。

関連する標準規格

複数ある主要な標準規格の名称と関係について簡潔に述べる。 詳細な情報については文献に記述する。

符号化表現 (coded representation)

以降ではバイトを column/row の組み合わせで表現する。 column と row は 0-15 の十進整数であり、それぞれ上位 4 bit と下位 4 bit を表す。 例えば 02/00 は 0x20 を表し ASCII コードにおいて空白文字に対応する。

制御機能を表現するバイト列を符号化表現 (coded representation) という。 符号化表現の形式によって制御機能は以下の様に分類される。

名称符号化表現説明関連規格
制御文字 C0 制御文字C0制御機能の基本集合ISO/IEC 646
C1 制御文字C1制御機能の補助集合ISO/IEC 6429 (ECMA-48)
Unicode 制御文字CfUnicode 制御機能ISO/IEC 10646, Unicode UAXs
DLE シーケンス DLE I* F
DLE I* C0
伝送の制御ISO/IEC 1745 (ECMA-16, ECMA-37)
情報メッセージ
情報ブロック
(SOH ...)? STX ... ETX
(SOH ...)? STX ... ETB
SOH ... ETB
伝送
エスケープシーケンス ESC I* Ft文字コードの制御ISO/IEC 2022 (ECMA-35)
ESC I* Fp私用の文字コード・制御
制御シーケンス CSI P* I* Ft ANSI 制御機能ISO/IEC 6429 (ECMA-48)
制御列コマンド列 DCS ... ST装置制御
OSC ... STOSの機能
PM ... ST 私用の機能
APC ... STアプリケーションの機能
文字列 SOS ... ST文字列

但し、DLE, ESC, DCS, SOS, CSI, ST, OSC, PM, APC は C0 または C1 に含まれる制御文字である (後述)。

[ECMA-48/5.4, ECMA-35/13.2.1] また、Name の表記で示したバイトは、Name に応じて特定の集合に含まれる。

Name範囲
C000/00 - 01/15
I02/00 - 02/15
F Fp, P03/00 - 03/15
Ft Fe04/00 - 05/15
Fs06/00 - 07/14
C108/00 - 09/15
Cf Unicode General Category Cf, Zl, Zp の文字
(特定の文字符号化方式でバイト列を Unicode 文字の列に変換した後)

制御文字 (control character)

C0 (ISO/IEC 646)C1 (ISO/IEC 6429)
略号C/R16進8進ESCN 略号C/R16進8進ESCN 略号C/R16進8進 略号C/R16進8進
NUL00/00\x00\000^@ DLE01/00\x10\020^P (PAD)08/00\x80\200 DCS09/00\x90\220
SOH00/01\x01\001^A DC1
(XON)
01/01\x11\021^Q (HOP)08/01\x81\201 PU109/01\x91\221
STX00/02\x02\002^B DC201/02\x12\022^R BPH08/02\x82\202 PU209/02\x92\222
ETX00/03\x03\003^C DC3
(XOFF)
01/03\x13\023^S NBH08/03\x83\203 STS09/03\x93\223
EOT00/04\x04\004^D DC401/04\x14\024^T IND08/04\x84\204 CCH09/04\x94\224
ENQ00/05\x05\005^E NAK01/05\x15\025^U NEL08/05\x85\205 MW 09/05\x95\225
ACK00/06\x06\006^F SYN01/06\x16\026^V SSA08/06\x86\206 SPA09/06\x96\226
BEL00/07\x07\007\a^G ETB01/07\x17\027^W ESA08/07\x87\207 EPA09/07\x97\227
BS 00/08\x08\010\b^H CAN01/08\x18\030^X HTS08/08\x88\210 SOS09/08\x98\230
HT 00/09\x09\011\t^I EM 01/09\x19\031^Y HTJ08/09\x89\211 (SGCI)09/09\x99\231
LF 00/10\x0A\012\n^J SUB01/10\x1A\032\z^Z VTS08/10\x8A\212 SCI
(DECID)
09/10\x9A\232
VT 00/11\x0B\013\v^K ESC01/11\x1B\033\e^[ PLD08/11\x8B\213 CSI09/11\x9B\233
FF 00/12\x0C\014\f^L FS, IS4 01/12\x1C\034^\ PLU08/12\x8C\214 ST09/12\x9C\234
CR 00/13\x0D\015\r^M GS, IS3 01/13\x1D\035^] RI08/13\x8D\215 OSC09/13\x9D\235
SO
LS1
00/14\x0E\016^N RS, IS2 01/14\x1E\036^^ SS208/14\x8E\216 PM09/14\x9E\236
SI
LS0
00/15\x0F\017^O US, IS101/15\x1F\037^_ SS308/15\x8F\217 APC09/15\x9F\237
GL
SP02/00\x20\040 DEL07/15\x7F\177^?

図形文字 (graphic characters)

エスケープシーケンスや制御シーケンス・制御列では、 ISO 2022 の図形文字に相当するバイト値を構成要素として含む。 これらのバイト値は文字コードに依らずに一定のバイト値で表現される。 しかし毎回数値で表現すると不便なので、 この文書ではそれらのバイト値を ASCII コードに従って便宜上図形文字に割り当てて表現する。 例えば、制御シーケンス内に含まれる "06/13" はどの文字コード・文字符号化状態であっても "06/13" というバイト値で表されるが、この文書では便宜上 ASCII コードで対応する文字 "m" を用いる。 しかし、実際の実装では文字コードに依らずに 06/13 として取り扱われるべきである。 以下にバイト値と図形文字の対応を載せる。

[ECMA-48/5.4.2(b)] また数字に対応するバイト値には ZERO, ONE, ..., NINE などの名前が与えられている。 [ECMA-35/4.2] 但し、バイトを構成するビットの状態を ZERO, ONE で表すこともある。

略号C/R 16進
8進 10進
略号C/R 16進
8進 10進
略号C/R 16進
8進 10進
略号C/R 16進
8進 10進
略号C/R 16進
8進 10進
略号C/R 16進
8進 10進
SP 02/00 \x20
\040 32
0 03/00 \x30
\060 48
@ 04/00 \x40
\100 64
P 05/00 \x50
\120 80
` 06/00 \x60
\140 96
p 07/00 \x70
\160 112
! 02/01 \x21
\041 33
1 03/01 \x31
\061 49
A 04/01 \x41
\101 65
Q 05/01 \x51
\121 81
a 06/01 \x61
\141 97
q 07/01 \x71
\161 113
" 02/02 \x22
\042 34
2 03/02 \x32
\062 50
B 04/02 \x42
\102 66
R 05/02 \x52
\122 82
b 06/02 \x62
\142 98
r 07/02 \x72
\162 114
# 02/03 \x23
\043 35
3 03/03 \x33
\063 51
C 04/03 \x43
\103 67
S 05/03 \x53
\123 83
c 06/03 \x63
\143 99
s 07/03 \x73
\163 115
$ 02/04 \x24
\044 36
4 03/04 \x34
\064 52
D 04/04 \x44
\104 68
T 05/04 \x54
\124 84
d 06/04 \x64
\144 100
t 07/04 \x74
\164 116
% 02/05 \x25
\045 37
5 03/05 \x35
\065 53
E 04/05 \x45
\105 69
U 05/05 \x55
\125 85
e 06/05 \x65
\145 101
u 07/05 \x75
\165 117
&02/06 \x26
\046 38
6 03/06 \x36
\066 54
F 04/06 \x46
\106 70
V 05/06 \x56
\126 86
f 06/06 \x66
\146 102
v 07/06 \x76
\166 118
' 02/07 \x27
\047 39
7 03/07 \x37
\067 55
G 04/07 \x47
\107 71
W 05/07 \x57
\127 87
g 06/07 \x67
\147 103
w 07/07 \x77
\167 119
( 02/08 \x28
\050 40
8 03/08 \x38
\070 56
H 04/08 \x48
\110 72
X 05/08 \x58
\130 88
h 06/08 \x68
\150 104
x 07/08 \x78
\170 120
) 02/09 \x29
\051 41
9 03/09 \x39
\071 57
I 04/09 \x49
\111 73
Y 05/09 \x59
\131 89
i 06/09 \x69
\151 105
y 07/09 \x79
\171 121
* 02/10 \x2A
\052 42
: 03/10 \x3A
\072 58
J 04/10 \x4A
\112 74
Z 05/10 \x5A
\132 90
j 06/10 \x6A
\152 106
z 07/10 \x7A
\172 122
+ 02/11 \x2B
\053 43
; 03/11 \x3B
\073 59
K 04/11 \x4B
\113 75
[ 05/11 \x5B
\133 91
k 06/11 \x6B
\153 107
{ 07/11 \x7B
\173 123
, 02/12 \x2C
\054 44
<03/12 \x3C
\074 60
L 04/12 \x4C
\114 76
\ 05/12 \x5C
\134 92
l 06/12 \x6C
\154 108
| 07/12 \x7C
\174 124
- 02/13 \x2D
\055 45
= 03/13 \x3D
\075 61
M 04/13 \x4D
\115 77
] 05/13 \x5D
\135 93
m 06/13 \x6D
\155 109
} 07/13 \x7D
\175 125
. 02/14 \x2E
\056 46
>03/14 \x3E
\076 62
N 04/14 \x4E
\116 78
^ 05/14 \x5E
\136 94
n 06/14 \x6E
\156 110
~ 07/14 \x7E
\176 126
/ 02/15 \x2F
\057 47
? 03/15 \x3F
\077 63
O 04/15 \x4F
\117 79
_ 05/15 \x5F
\137 95
o 06/15 \x6F
\157 111
DEL07/15 \x7F
\177 127

エスケープシーケンス (escape sequence)

以下に 2バイト目 (ESC の次のバイト) で分類した表を載せる。 例によって赤色で示したのが、続きのバイト列を持つシーケンスである。

nFt型: 符号識別機能
(第2バイト I)
Fp型: 私用制御機能
(第2バイト Fp)
Fe型: 補助集合 C1
(第2バイト Fe)
Fs型: 標準単独制御機能
(第2バイト Fs)
略号符号化表現 略号符号化表現 略号符号化表現 略号符号化表現 略号符号化表現 略号符号化表現
ACS
WYID違反
ESC SP Ft
ESC SP
_CITSCAMESC 0 (PAD)ESC @ DCSESC P DMIESC ` PCDESC p
CZD
WYSTR違反
ESC ! I* Ft
ESC ! p
DECHTS
DECGON
_CITSACM
ESC 1 (HOP)ESC A PU1
_SCOSFK (SCODFK)
ESC Q INTESC a -R-ESC q
C1DESC " I* Ft DECCAHT
DECGOFF
_CITEACM
ESC 2 BPHESC B PU2ESC R EMIESC b -R-ESC r
"RSCF"ESC # I* Ft DECVTSESC 3 NBHESC C STS
_RESTRTB
ESC S RISESC c -R-ESC s
"GnDMm"ESC $ I Ft DECAVTESC 4 INDESC D CCHESC T CMDESC d -R-ESC t
DOCSESC % I* Ft DECXMIT
WYXCH
zTFC
_RESTMITB
_TVTSS
ESC 5 NELESC E MWESC U -R-ESC e -R-ESC u
IRRESC & I* Ft DECBI
zTI
_RESTMITT
ESC 6 SSAESC F SPAESC V -R-ESC f -R-ESC v
-R-ESC ' DECSCESC 7 ESAESC G EPAESC W -R-ESC g -R-ESC w
GZD4ESC ( I* Ft DECRCESC 8 HTSESC H SOSESC X -R-ESC h -R-ESC x
G1D4ESC ) I* Ft DECFI
zCGR
_RESBRK
ESC 9 HTJ
_SCOCBPL違反
ESC I (SGCI)ESC Y -R-ESC i -R-ESC y
G2D4ESC * I* Ft zGUAESC : VTSESC J SCI
DECID
ESC Z -R-ESC j -R-ESC z
G3D4ESC + I* Ft ---ESC ; PLDESC K CSIESC [ _SCRAKAESC k -R-ESC {
-R-
WYDELAY違反
ESC , V5EXESC < PLUESC L STESC \ _SCOLMAESC l LS3RESC |
G1D6ESC - I* Ft DECKPAMESC = RIESC M OSCESC ] _SCOUSRESC m LS2RESC }
G2D6ESC . I* Ft DECKPNMESC > SS2ESC N PMESC ^ LS2ESC n LS1RESC ~
G3D6ESC / I* Ft ---ESC ? SS3ESC O APCESC _ LS3ESC o ----

3Ft型 登録単独制御機能

[ECMA-35/6.5.2] ISO-IR (ISO International Register of Coded Character Sets) に後から登録される制御機能。

Note: 現在 (2016-10-13) この型の制御機能は一つも登録されていない様だ。

4Ft型 マルチバイト図形文字集合の指示

略号符号化表現説明
GZDM4(@)ESC $ @旧JIS (1978) を G0 に指示
GZDM4(A)ESC $ AGB 2312 を G0 に指示
GZDM4(B)ESC $ B新JIS (1983) を G0 に指示
GZDM4(SP ...)ESC $ SP I* FDRCS を G0 に指示 [T.61/E.3.1.2]
GZDM4ESC $ ( I* Ft94n 図形文字集合を G0 に指示
G1DM4ESC $ ) I* Ft94n 図形文字集合を G1 に指示
G2DM4ESC $ * I* Ft94n 図形文字集合を G2 に指示
G3DM4ESC $ + I* Ft94n 図形文字集合を G3 に指示
-R- ESC $ , I* Ft(予約)
G1DM6ESC $ - I* Ft96n 図形文字集合を G1 に指示
G2DM6ESC $ . I* Ft96n 図形文字集合を G2 に指示
G3DM6ESC $ / I* Ft96n 図形文字集合を G3 に指示

nFp型 私用領域

1Fp, 2Fp, 4Fp, 6Fp, 7Fp, 10-15Fp の使用例は現在見つかっていない。 0Fp型は ACS の私用パラメータで、 5Fp型は DOCS の私用パラメータで、 8Fp, 9Fp型は GZD4, G1D4 の私用パラメータとして使われている。

3Fp型 私用制御機能
符号化表現略号
ESC # 0 _CITSAAM
ESC # 1 _CITEAM, _RESLF80
ESC # 2 _CITOCLA, _RESLF132, _TVDHL
ESC # 3 DECDHL
ESC # 4 DECDHL
ESC # 5 DECSWL
ESC # 6 DECDWL
ESC # 7 DECHCP
ESC # 8 DECALN
ESC # 9 DECFPP, _CITFSC
ESC # : WYDHL
ESC # ; WYDHL
ESC # <_CITSOLA
ESC # = _CITROLA
ESC # >_CITKCLK
ESC # ? ---
ESC # ! 0 _TEKRSM
ESC # I 0_X11CT0*ae
ESC # I 1_X11CT1*ae

制御シーケンス (control sequence)

先頭符号化表現名前
CSI CSI P* I* Ft 制御シーケンス (control sequence)

この文書ではエスケープシーケンスに倣って、制御シーケンスについても I* Ft の部分により型を定めることにする。

標準の制御機能 (Ft型 CSI ... Ft 及び 0Ft型 CSI ... SP Ft) を表にする。

Ft型: 標準端末制御機能
CSI ... Ft
0Ft型: 標準端末制御機能
CSI ... SP Ft
Ft略号 Ft略号 Ft略号 Ft略号 Ft略号 Ft略号
@ICH PDCH `HPA @SL PPPA `TATE
ACUU QSEE aHPR ASR QPPR aTALE
BCUD RCPR, _SCODL bREP, _SCOHPR*km BGSM RPPB bTAC
CCUF SSU cDA, _SNIRIS*km CGSS SSPD cTCC
DCUB TSD, XTHIMOUSE dVPA DFNT TDTA dTSR
ECNL UNP, _SCORIS eVPR ETSS USLH eSCO
FCPL VPP, _SCOER fHVP FJFY VSLL fSRCS
GCHA WCTC gTBC, _SCODGC GSPL WFNK gSCS
HCUP XECH hSM HQUAD XSPQR hSLS
ICHT YCVT iMC, _TVMC ISSU YSEF iSPH
JED ZCBT jHPB JPFS ZPEC jSPL
KEL [SRS kVPB, _SCOEDK KSHS [SSW kSCP
LIL \PTX lRM LSVS \SACS l---
MDL ]SDS, _LNXCLR*km mSGR MIGS ]SAPV m---
NEF ^SIMD nDSR, _SCOTCP NHTSA ^STAB n---
OEA _--- oDAQ, _SCOTMP OIDCS _GCC o---

xterm が標準領域に幾つか制御機能を定義している。

I Ft略号
CSI # PXTPUSHCOLORS
CSI # QXTPOPCOLORS
CSI # RXTREPORTCOLORS

以下は Ft型の私用制御機能 (CSI ... Ft)。重複が著しいが元々避ける意図はなかったのだろう。

Ft型: 私用制御機能
Ft略号
pDECSSL, SUNBOW, WYFDAT, _AIXKSI, _DGBAR, _DOSSKR, _ZDSPXMT, RLBFAT, _SNIMODEP*km, zSDP, BEESSKM, _RESDCWTB
qDECLL (HPLF), SUNWOB, _AIXPFK, DGCA, _DOSEKR, _ZDSPX25, _SNIMODEQ*km, _RESPKI, _TVDPM
rDECSTBM, DECPCTERM, _SCOCSR, SUNSCRL, _ZDSPMBR
sDECSLRM, SCOSC, WYSC, _DGRRC, SUNRESET, _SNIMODES*km, zPSH, BEEAP, _TVCUP
tXTWINOPS (_SUNWINM), DECSLPP, WYNNAT, DGROSC, _CITSTIME, _SNIMODET*km, zPOP, BEESAP, _RESTDPF, _TVCCR
uDECSHTS, SCORC, WYRC, _DGSPOS, _CITSSR, _SNIMODEU*km, zSTP, BEESKL, _RESLPDPF, _TVCDAQ
vDECSVTS, RLSCD (_CITSCUR), _DGSPARM, _SNIMODEV*km, zSRC, BEEMAP, _TVSVAL
wDECSHORP, _AIXVTR, DGMARG, _CITSCURB, _SNIMODEW*km, zSPF, _WYCLR*km, BEEBEL, _TVVSTR
xDECREQTPARM, DECREPTPARM, _AIXVTD, DGRTC, C25SGR, _TVTPORT
yDECTST, _AIXVTL, _SNIMODEY*km, _VIPRQ*km, _TVRIS
zDECVERP, WYSCRATE, _SCOSSW, C25VTSW, _CITPCTL, _ZDSPRAM, _SNISLRM*km, zSTE, BEEBDS, _RESETDPF
{BEECM, _RESSSTIC
|DECTTC, BEESND, _RESSETIC, _TVEFK
}DECPRO, _TVSET
~DECFNK, _CITTST, _RESICTB

nFt型の私用制御機能 (CSI ... I Ft) を以下にまとめる。

nFt型: 私用制御機能 (0Ft..7Ft)
0Ft SP 1Ft ! 2Ft " 3Ft # 4Ft $ 5Ft % 6Ft & 7Ft '
p DECSSCLS, _RESSPAGE
_TVOTLG
DECSTR DECSCL XTPUSHSGR DECRQM --- --- ---
q DECSCUSR, _RESSCC
_TVCAPVA
PrintPartialImageVK100 DECSCA XTPOPSGR DECSDDT --- DECSNC DECSBCA
r DECSKCV, _RESSRBCRM --- --- --- DECCARA --- --- ---
s DECNS, _RESSSBL DECFIL DECPWA --- DECSPRTT --- --- DECTLTC
t DECSWBV, _RESDMS --- DECSRFR --- DECRARA --- --- ---
u DECSMBV, _RESUSCF --- DECSTRL --- DECRQTSR --- DECRQUPSS ---
v DECSLCK, _RESLSCF DECASFC DECRQDE --- DECCRA --- --- ---
w DECSITF, _RESESM DECUND DECRPDE --- DECRQPSR --- DECLRP DECEFR
x DECSDPM, _RESCDFM DECPTS DECFCR --- DECFRA --- DECES ---
y _RESRDC DECSS --- XTCHECKSUM DECRPM --- --- ---
z DECVPFS, _RESDREND --- DECDEN --- DECERA --- --- DECELR
{ DECSSS --- DECRFS*ae XTPUSHSGR DECSERA --- --- DECSLE
| DECRVEC DECVEC --- XTREPORTSGR DECSCPP --- --- DECRQLP
} DECKBD DECFIN --- XTPOPSGR DECSASD --- --- DECIC
~ DECTME --- --- --- DECSSDT --- --- DECDC
nFt型: 私用制御機能 (8Ft..15Ft)
8Ft ( 9Ft ) 10Ft * 11Ft + 12Ft , 13Ft - 14Ft . 15Ft /
p --- DECSDPT DECSPPCS DECSR DECLTOD DECARR --- ---
q --- --- DECSRC DECELF DECTID DECCRTST --- ---
r --- --- DECSCS DECSMKR --- DECSEST --- ---
s --- --- DECSFC --- --- --- --- ---
t --- --- --- --- --- --- --- ---
u --- --- DECSCP --- DECRQKT --- --- ---
v --- --- --- DECMM DECRPKT --- --- ---
w --- --- --- DECSPP DECRQKD --- --- ---
x --- --- DECSACE DECRQPKFM DECSPMA --- --- ---
y --- --- DECRQCRA DECPKFMR DECUS --- --- _SGICMD
z --- --- DECINVM DECPKA DECDLDA --- --- ---
{ --- DECSTGLT DECMSR
DSR-MSR
--- DECSZS --- --- ---
| --- --- DECSNLS --- DECAC --- --- ---
} --- --- DECLFKC --- DECATC --- --- ---
~ --- --- --- --- DECPS --- --- ---

パラメータの先頭に <, =, >, ? を含む私用制御機能。 応答では WYFKEX が CSI < F (F = a-o, A-O) を専有している。

[+ は既存の制御機能の私用パラメータとしての拡張 ]
Ft < = > ?
A - _SCOSBC (C25BORD)
_BA80DKM*km
- -
B - _SCOSBP (C25BLPD)
_BA80CUR*km
- -
C - _SCOSCS (C25GCS)
_BA80CVM*km
- -
D - _SCOSBI - -
E - _SCOSBB
_BA80WSR*km
- _AIXXES
F - _SCOSNF (C25DFG)
_BA80FVW*km
- _AIXXRS
G - _SCOSNB (C25DBG) - -
H - _SCOSRF - _AIXXHS
I - _SCOSRB
_BA80INP*km
- -
J - _SCOSGF _CITERECT+ DECSED+
_RESED+
_TVED+
K - _SCOSGB
_BA80BFL*km
_CITECOLS+ DECSEL+
_TVEL+
L - _SCOSEF - -
M - _SCORAS
_BA80GSL*km
- -
O - _BA80OVW*km - -
Ft < = > ?
S - C25LCT
_BA80RSL*km
- XTSMGRAPHICS (XTCOLREG*ml)
_AIXXSS
T - C25MODE XTRMTITLE (XTRMTT*ml) _AIXXGS
W - - - DECST8C+
Z - _ANSIRIS*km - -
Ft < = > ?
c - DA3+
_SCOHSC
DA2+ DEC EB DS+*ae
RequestFontConfiguration+LA100
RequestDPSConfiguration+*ae,LA
_LNXCUR*km
g - _SCOPRC
_ANSIDGC*km
_CITST8C+ _TVTBC
h _DGSM+ _SGISM+
_DOSSM+
_DOSSM+, _CITSM+
_PC98SM+, _ZDSSM+
_SUNSM+, _zSM+
DECSET+
i - - - DECMC+
j - - - _VCKDEF
k - - _SUNRQM _VCSLA
l _DGRM+ _SCOCHC
_SGIRM+
_DOSRM+
_DOSRM+, _CITRM+
_PC98RM+, _ZDSRM+
_SUNRM+, _zRM+
DECRST+
m _TEKSGRFC _SCOSSM
_TEKSGRBC
XTMODKEYS (XTMDKEY*ml)
_TEKSGREC
_DECSGR*ae
_VCTDP
n - - _XTUNMODKEYS (XTMDKEYD*ml) DECDSR+
o - - _zDAQ+ _RESDAQ+
Ft < = > ?
p - - XTSMPOINTER (XTHDPT*ml) -
q - - XTVERSION (TerminalIdentificationTWG) -
r TTIMERS _SCORSM - XTRESTORE (XTREST*ml, _AIXRM)
s TTIMESV - HPHD, HPHU XTSAVE (_AIXSM)
t TTIMEST - XTSMTITLE (XTSMTT*ml) _TVCCRD
u _KittyKeyboardPop - _KittyKeyboardPush _KittyKeyboardQuery
w - - - _RESDWORD
z - _SCOCAT - -
} - - - _VCPSGR
~ _KERMMACR*km - - -
I Ft < = > ?
SP D - - - ReportFontConfigurationLA100
SP J - - - PFS+LN03
$ R - _BA80RVW*km - -
$ p - - - DECRQM+
$ y - - - DECRPM+
! i RLIMGCP - - -
! q RLCURCOL - - -

その他の私用制御機能

符号化表現略号
CSI $ R _SCODL*km
CSI = ? I_AESSF*ae,*km
CSI ? = J_AESSN*ae,*km
CSI = ? l_AEILU*ae,*km
CSI ? = m_AEDLD*ae,*km

以下は ECMA-48 の規則に抵触している物。

符号化表現略号
CSI ! TeleGraphix Determining RIP support*ae
CSI > Cq ... CqWYTLOAD
CSI + _DOSXON
CSI - _DOSXOFF
CSI Pn ? p_RESSLPLL
CSI Pn ? q_RESSLLLC
CSI Pn ; Pn ; Pn ? r_RESRTIME
CSI Pn ; Pn ; Pn ? s_RESSTIME
CSI Pn ; Pn ? t _RESSTT
CSI Pn ? u _RESRLDL
CSI Pn ? v _RESRLDW
CSI Pn ; Pn ? y _RESSEOLRC
CSI Pn ; Pn ? { _RESSGFIC
CSI Pn ; Pn ? | _RESSELTC
CSI Pn ; Pn ? } _RESSBAUD
CSI Pn ; Pn ? ~ _RESSPRTY
ESC & k 1 <_HPANSI
ESC & k 0 \_HPHP
未だまとめていないシーケンス
略号符号化表現
DECSED CSI ? Ps J
DECSEL CSI ? Ps K
DECMC (MC) CSI ? Pm i
DECDSR (DSR) CSI ? Ps n
TTIMEST CSI < Ps t
TTIMESV CSI < Ps s
TTIMERS CSI < Ps r
RLIMGCP CSI < Ps ! i
RLCURCOL CSI < Ps ! q
# 各端末の対応制御機能

2020-03-01 Poderosa4
2022-12-11 Windows Terminal (src/terminal/parser/OutputStateMachineEngine.hpp)
2022-12-11 mintty (src/termout.c
2022-12-11 RLogin (RLogin/TextRamProc.cpp)
2022-12-11 xterm#377 71281439 (VTPrsTbl.c csi_table, etc.)
2022-12-11 dnkl/foot ccfb953b (csi.c csi_distach)
2022-12-11 tmux (input.c input_csi_table)
2022-12-11 screen4+1ec8838 (ansi.c), screen 4.99+c3e84d2 (ansi.c)

# Ft型 CSI シーケンス (ANSI/Private)

4=(xterm によると ECMA-48:1991(5th)のtypo(2003年修正)らしい)

|          |@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno|pqrstuvwxyz{|}~|
|----------|------------------------------------------------|---------------|
| ECMA-48  |************************************************|               |
|----------|------------------------------------------------|---------------|
| RLogin   |*****************  ********     ****************|******* **     |
| screen   |**************  *  **   * *   E    ** ****  *** |* ****  *      |
| tmux     |********* ****  *  **   * *     * *** ***   *** |  ****         |
| contra   |********* ****  *  **   *  * ** ** **** * ***** |  ** *         |
| mintty   |**************  *  **   * *     **********  *** | *****  *      |
| xterm    |**************  *  **   * *   E **********  *** | *****  *      |
| Poderosa |**************  *  **X  * *     *  ** ***   *** |  *            |
| wt       |**************  *  **   * *     ********     ** |  *!!*  *      | !=解析されるが未実装
| foot     |**************  *  **   * *     *********   *** |  ****         |

# 0Ft型 CSI シーケンス (ANSI/Private)

tmux=screen Poderosa=none

|         |◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦|◦◦◦◦◦| ◦=SP
|         |@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk|pqtu~|
|---------|--------------------------------------------|-----|
| ECMA-48 |********************************************|     |
|---------|--------------------------------------------|-----|
| RLogin  |**  *           ***                         | *  *|
| screen  |                                            | *   |
| contra  |**                 * **              *   ***| *   |
| mintty  |**                 *      *                *| *** |
| xterm   |**                                          | *** |
| wt      |                                            | *   |
| foot    |                                            | *   |

# nFt型標準 CSI シーケンス (標準違反)

Note: # で始まるものは xterm, + で始まるものはkitty による導入

|          |###|+|
|          |PQR|T|
|----------|---|-|
| xterm    |***| |
| RLogin   |***| |
| mintty   |***|*|


# nFt型私用 CSI シーケンス

screen=none tmux=none

|          |!!!!!!!!|""""""""|#######|$$$$$$$$$$$$$$$|%|&&&|'''''''|))|***********|+++++++|,,,,,,,,,,,|---| 
|          |psvwxy|}|pqstuvwz|pqty{|}|pqrstuvwxyz{|}~|q|qux|qwz{|}~|p{|pqrsuxyz{|}|pqrvwxz|pqvwxyz{|}~|pqr|
|----------|--------|--------|-------|---------------|-|---|-------|--|-----------|-------|-----------|---|
| RLogin   |*       |**   *  |**  ***|* * ***** *****| | * | ******| *|     ***   |*    * | *      ***|   |
| contra   |        |**      |       |*           *  | |   |       |  |           |       |           |   |
| mintty   |*       |**      |*** * *|* *   *** *****|*|*  | ******|  |     **  * |       |          *|*  |
| xterm    |*       |**      |** ****|* * * *** *****| |   | ******|  |     **  * |       |           |   |
| Poderosa |*       |        |       |               | |   |       |  |           |       |           |   |
| wt       |*       |**      |    * *|* **  * * ***  | |   |       |  |     * *   |       |        * *|   |
| foot     |*       |        |       |            *  | |   |       |  |           |       |           |   |

# 私用パラメータ CSI シーケンス

|          |<<<<<<|==========|>>>>>>>>>>|??????????????|
|          |    !!|          |          |             $|
|          |rstuiq|ABCFGHIScu|STcmnpqstu|JKSWchilmnrsup|
|----------|------|----------|----------|--------------|
| RLogin   |*** **|   **  ** | ****** * |**** *** *** *|
| screen   |      |          |  *       |     * *      |
| tmux     |      |          |  *** *   |     * *      |
| contra   |      |          |  ***     |     * *     *|
| mintty   |***   |          | ******   |**  ********  |
| xterm    |      |        * | ******** |**   *** *** *|
| Poderosa |      |          |  *       |     * *  **  |
| foot     |   *  |        **|  *** *  *|  *  * *  ****|
| wt       |      |        * |  *       |**   * * *   *|

制御列 (control string)

開始種類符号化表現名前
OSCコマンド列 OSC Ps ; GL'* ST
OSC Ps ; GL'* BEL
OSC Ft GL'* ST
Operating System Command
DCSコマンド列 DCS Pm I* Ft GL'* STDevice Control String
SOS キャラクタ列 SOS U* ST Start of String
PM コマンド列 PM GL'* ST Privacy Message
APC コマンド列 APC GL'* STApplication Program Command
_SCRAKAキャラクタ列?ESC k U* ST Title Definition String (GNU Screen)
_SNIPU1*kmコマンド列PU1 GL'* ST 97801-5XX PU1 sequence
_SNIPU2*kmコマンド列PU2 Ft GL'* ST 97801-5XX PU2 sequence
_BEETCMK5コマンド列SS3 P ... STBeehive PF key report
_BEEAPCコマンド列ESC APC Ft ... ESC STBeehive ESC APC sequence

TeleVideo の制御列様のシーケンス

TeleVideo が ECMA-48 に反する様な幾つかのシーケンスを定義している。

符号化表現略号説明
PM ... CR _TVLUMLLoad user's message line
ESC | P1 ; P2 ; ... CR_TVPFK Program function keys
ESC ^ (※ESC ^は本来 APC)_TVDLM Download font or data to memory
ST Ps ... CR _TVNKFVNew/ key/function value

モード

モードは端末の動作方法を指定する2値の変数である。 モードを操作する制御機能には以下のものがある。

略号符号化表現備考
SM CSI Pm h
DECSET CSI ? Pm h
RM CSI Pm l
DECRST CSI ? Pm l
DECRQM CSI Ps $ p
CSI ? Ps $ p
DECRPM CSI Ps ; Ps $ y
CSI ? Ps ; Ps $ y
(応答)

ANSI Modes

表: ANSI モード
略号Mode略号Mode略号Mode 略号Mode略号Mode
GATM 1 PUM非推奨 11GRCM 21 WYSTLINM 31WYSL44 41
KAM 2 SRM 12ZDM非推奨22 WYCRTSAVM 32WYASCII, WY60 42
CRM 3 FEAM 13-23 WYSTCURM 33WY75 43
IRM 4 FETM 14-24 WYULCURM 34_WYVT100 44
SRTM 5 MATM 15-25 WYCLRM 35- 45
ERM 6 TTM 16-26 WYDELKM 36- 46
VEM 7 SATM 17-27 WYGATM 37- 47
BDSM 8 TSM 18-28 WYTEXM, _HPTEKM38- 48
DCSM 9 EBM 19-29 - 39- 49
HEM 10LF/NL (LNM)20WYDSCM, QUMES2L30 WYEXTDM, WYSEDL40--

その他の ANSI モード

DEC Modes (?1-?120)

表: DECモード (1-50)
Mode略号
?1 DECCKM (TEKCKM, HPCKM)
?2 DECANM (TEKANM, HPANM)
_ZDSZMD
?3 DECCOLM (TEKCOLM, HPCM)
_RESJSM[Manual typo?] - (Research) Jump Scroll
?4 DECSCLM (HPSCLM)
?5 DECSCNM (TEKSCNM)
?6 DECOM (TEKOM, HPOM)
?7 DECAWM (TEKAWM, HPAWM)
?8 DECARM (TEKARM)
_TVCLSPM - (TeleVideo) Recognize CLEAR SPACE
?9 DECINLM
XTERM_X10_MOUSE
_TVCCM - (TeleVideo) Control code mode
?10 RXVT_menuBar
_RESEM - (Research) Edit Mode
_TVBCM - (TeleVideo) Block/Conversational mode
_VCBLKM - (Volker-Craig) block edit mode / conversational mode
?11 _RESTLPM - (Research) Transmit Line/Page
_TVTLDM - (TeleVideo) Transfer line/display
_VCTSL - (Volker-Craig) transmit single line/page
?12 ATT610_BLINK
_RESLOLM - (Research) Local Mode / On-Line Mode
_TVHFDUPM - (TeleVideo) Half/Full duplex
?13 DECSCFDM*ae
XTERM_CURSOR_BLINK_OPS
_RESSPSSM - (Research) Serial Port Space Suppression
_TVDPM - (TeleVideo) Display/Page mode
?14 DECTEM*ae
XTERM_XOR_CURSOR_BLINKS
_TVTNLM - (TeleVideo) Transmit now/later
_VCITM - (Volker-Craig) immediate transmission mode / deferred transmission mode
?15 _RESPPSM - (Research) Peripheral Port Suppression
_TVMSPPM - (TeleVideo) Multi/single page protect mode
?16 DECEKEM*ae
_TVBRKM - (TeleVideo) Recognize BREAK key
?17 _BEEATM
_TVFBM - (TeleVideo) Forms build mode
?18 DECPFF
_TVVAAM - (TeleVideo) Visual attribute action mode
_VCINSM - (Volker-Craig) INS/EDIT BLK mode
?19 DECPEX
_TVPSPRM - (TeleVideo) print scrolling page/region
_VCPROTM - (Volker-Craig) PROTected mode
?20 _RESWM - (Research) Wide Mode
_TVMSAM - (TeleVideo) Multi/single autopage mode
?21 _RESKRRM - (Research) Keyboard Repeat Rate 15 cps / 30 cps
_TVNTVM - (TeleVideo) Native/VT100 mode
?22 _RESSSRM - (Research) Smooth Scroll Rate 12 lps / 6 lps
_TVNKCLKM - (TeleVideo) Disable keyclick
?23_RESNIDFLM - (Research) No Interpretation During Function Loading
?24 laPrintDensity*ae
_BEEFFCRM
_RESPM - (Research) Protect Mode On
?25 DECTCEM
_BEEFFNPM
_RESBCM - (Research) Block Mode / Character Mode
?26 _BEEDROL
_RESCNM - (Research) Calculator Mode / Normal Mode
_TVBIDIXM - (TeleVideo) Bidirectional extension/transparent print
?27 DECPSP*ae
_BEEVASM
_RESDTSM - (Research) Display Terminal Status / Status Display Off
?28 _BEEHASM
_RESKCLKM - (Research) Keyclick On
?29 DECPSM*ae
_RESLMWM - (Research) Left Margin Wrap
?30 RXVT_scrollBar
_BEEVTCRM
_RESSCRM - (Research) Scrolling On / Scrolling Off
?31 _BEEILCRM
_RESAPAM - (Research) Auto Page Advance / Page Advance Stop
?32_RESSSM - (Research) Screen Saver On
?33_RESCCBM - (Research) Cursor Character Blink / Steady
?34 DECRLM
_RESRRM - (Research) 50 / 60 Hz Referesh Rate
?35 DECHEBM
RXVT_ShiftKeys
_RESSPBRM - (Research) Serial Port Busy-Ready
?36 DECHEM
_RESSPHM - (Research) Serial Port Half / Full Duplex
?37_RESSPNPCM - (Research) Serial Port No Parity Check
?38 DECTEK*rl
_RESSPSRM - (Research) Serial Port Suspend Resume
?39_RESSTASM - (Research) Serial Transmit Auto Suspend On EOL / No Auto Suspend
?40 DECCRNLM*ae
XTERM_132COLS
_RESSSFSM - (Research) Space Substitution for Fields, Serial / No Space Substitution
?41 laPrintDirection*ae
XTERM_CURSES_HACK
_RESPBRDM - (Research) Peripheral Busy-Ready Detect / Busy-Ready Not Sensed
?42 DECNRCM
_RESBRLHM - (Research) Busy-Ready Level Hight / Low
?43DECGEPM*ae
?44 DECGPCM*ae
XTERM_MARGIN_BELL
_RESPPHM - (Research) Peripheral Port Half / Full Duplex
?45 DECGPCS*ae
XTERM_REVERSEWRAP
_RESPPNPCM - (Research) Peripheral Port No Parity Check
?46 DECGPBM*ae
XTERM_ALLOWLOGGING
_RESESRPPM - (Research) Enable Suspend Resume Peripheral Port
?47 DECGRPM*ae
XTERM_ALTBUF
_RESPTASM - (Research) Peripheral Transmit Auto Suspend on EOL
?48_RESSSPPM - (Research) Space Substitution Peripheral Port
?49_RESEPSM - (Research) Erase to Protected Spaces / Erase to Non-Protected Spaces
?50_RESSMPM - (Research) Selection Menu Page / Line
表: DECモード (51-80)
Mode略号 Mode略号 Mode略号
?51DECBWRM*ae ?61DECVCCM ?71-
?52DECOPM*ae ?62- ?72-
?53DEC131TM*km ?63- ?73DECXRLMM
?54- ?64DECPCCM ?74-
?55DECBPM*ae ?65- ?75-
?56- ?66DECNKM ?76-
?57DECNAKB ?67DECBKM ?77-
?58- ?68DECKBUM ?78-
?59DECKDM*ae ?69DECLRMM (DECVSSM) ?79-
?60DECHCCM ?70- ?80DECSDM*rl
WY161*km
表: DECモード (81-120)
Mode略号 Mode略号 Mode略号 Mode略号
?81DECKPM ?91- ?101DECCANSM ?111DECFWM
?82- ?92- ?102DECNULM ?112DECRPL
?83WY52*km ?93- ?103DECHDPXM ?113DECHWUM
?84WYENAT*km ?94- ?104DECESKM ?114DECATCUM
?85WYREPL*km ?95DECNCSM ?105- ?115DECATCBM
?86- ?96DECRLCM ?106DECOSCNM ?116DECBBSM
?87- ?97DECCRTSM ?107- ?117DECECM
?88- ?98DECARSM ?108DECNUMLK ?118-
?89- ?99DECMCM ?109DECCAPSLK ?119-
?90- ?100DECAAM ?110DECKLHIM ?120-

XTerm Modes (?10xx, ?20xx)

表: XTerm モード (xterm/{ptyx,xcharmouse}.h より)
略号番号略号番号
XTERM_VT200_MOUSE ?1000XTERM_KEEP_CLIPBOARD ?1044
XTERM_VT200_HIGHLIGHT_MOUSE ?1001XTERM_ALLOW_ALTBUF ?1046
XTERM_BTN_EVENT_MOUSE ?1002XTERM_OPT_ALTBUF ?1047
XTERM_ANY_EVENT_MOUSE ?1003XTERM_SAVE_CURSOR ?1048
XTERM_FOCUS_EVENT_MOUSE ?1004XTERM_OPT_ALTBUF_CURSOR ?1049
XTERM_EXT_MODE_MOUSE ?1005XTERM_TCAP_FKEYS ?1050
XTERM_SGR_EXT_MODE_MOUSE ?1006XTERM_SUN_FKEYS ?1051
XTERM_ALTERNATE_SCROLL ?1007XTERM_HP_FKEYS ?1052
RXVT_TtyOutputInh ?1010XTERM_SCO_FKEYS ?1053
RXVT_Keypress ?1011XTERM_LEGACY_FKEYS ?1060
URXVT_ExtMouseRight ?1015XTERM_VT220_FKEYS ?1061
XTERM_EIGHT_BIT_META ?1034XTERM_PRIVATE_COLOR_REGISTERS?1070
XTERM_REAL_NUMLOCK ?1035XTERM_BUTTON1_MOVE_POINT ?2001
XTERM_META_SENDS_ESC ?1036XTERM_BUTTON2_MOVE_POINT ?2002
XTERM_DELETE_IS_DEL ?1037XTERM_DBUTTON3_DELETE ?2003
XTERM_ALT_SENDS_ESC ?1039XTERM_PASTE_IN_BRACKET ?2004
XTERM_KEEP_SELECTION ?1040XTERM_PASTE_QUOTE ?2005
XTERM_SELECT_TO_CLIPBOARD ?1041XTERM_PASTE_LITERAL_NL ?2006
XTERM_BELL_IS_URGENT ?1042XTERM_PIXEL_POSITION_MOUSE?1016
XTERM_POP_ON_BELL ?1043URXVT_intensityStyles?1021

Other Private Modes

表: RLogin モード (名称は RLogin/TextRam.h より。*1 マニュアルには RLAMBCHM*ml とある)
略号番号略号番号略号番号
RLGCWA ?8400RLNORESZ ?8435 RLMODKEY ?8450
RLGNDW ?8401RLKANAUTO ?8437 RLDRWLINE ?8451
RLGAWL ?8402RLMOSWHL ?8438 RLSIXPOS ?8452
RLBOLD ?8403RLMSWAPP ?8439 DRCSMMv1 ?8453 (?8800)
RLFONT ?8404RLPNAM ?8440 RLC1DIS ?8454
RLBPLUS ?8405IMECTRL ?8441 RLCLSBACK ?8455
RLALTBDIS ?8406RLCKMESC ?8442 (?7727)RLBRKMBCS ?8456
RLADBELL ?8416RLMSWAPE ?8443 (?7786)TTCTH ?8457 (?8200)
RLVSBELL ?8417RLTEKINWND?8446 RLBOLDHC ?8458
RLUNIAWH*1?8428RLUNINOM ?8448 --
RLSPCTAB ?8429RLUNIAHF ?8449 --
表: その他の私用DECモード
略号Mode
minttyAmbiguousWidthReport ?7700
minttyScrollMarker ?7711
minttyAppEsc ?7727
minttyEscFs ?7728
minttySixelScrollEndPos ?7730
minttyScrollbar ?7766
minttyFontChangeReport ?7767
minttyShortcutOverride ?7783
minttyEnableMouseWheel ?7786
minttyApplicationMouseWheel?7787
minttyDisableBidiLine ?7796
minttyDisableBidi ?77096
minttyModifyKey ?77000-77031
VTE_BIDI_BOX_MIRROR ?2500 (tmp)
VTE_BIDI_AUTO ?2501 (tmp)
VTE_BIDI_SWAP_ARROW_KEYS ?1243 (tmp)
TTCTH (Tera Term) ?8200
DRCSMMv1 (drcsterm) ?8800
TNAMB (tanasinn) ?8840
W32IM (Windows Terminal) ?9001
KITTY_STYLED_UNDERLINES ?2016
KITTY_EXTENDED_KEYBOARD ?2017
TWGSUM ?2026
?foot? modify_escape_key?27127
?foot? ime_enable?737769

その他の私用モード

ModeName
<0_DGROLM
<1_DGBLKM
TEKORM
<2_DGHSCM
<3_DGANSM
<4_DGFRMM
<5_DGMGNM
ModeName
=0 _DOST40C1M
_TVTCM - (TeleVideo 965) Transmission control mode
=1 _DOST40C3M
_TV8DBM - (TeleVideo 965) 8 data bits / 7 data bits
=2 _DOST80C1M
_TVABPM - (TeleVideo 965) Attribute base: page
=3 _DOST80C3M
_TVCOLM - (TeleVideo 965) 132 column mode
=4 _DOSG32C2M
_TVMBELLM - (TeleVideo 965) Margin bell on
=5 _DOSG32C1M
_TVINTENM - (TeleVideo 965) Full/half intensity
=6 _DOSG62C1M
_SGILKDM
_TVNLM - (TeleVideo 965) New line mode
=7 _DOSAWM
_TVLWM - (TeleVideo 965) Line wrap
=8 _TVKRM - (TeleVideo 965) Key repeat on
=9 _SGIEVBM
_TVDNLFM - (TeleVideo 965) DOWN = C-j/C-v
=10_TVFKSM - (TeleVideo 965) Function key save on
=11_TVESETUPM - (TeleVideo 965) SETUP enabled
=12 _SGIOVLM
_TVEEWSCM - (TeleVideo 965) EWSC enabled
=13 _DOSG32C3
_TVECLRM - (TeleVideo 965) CLR SPC enabled
=14 _DOSG62C4
_TVEBRKM - (TeleVideo 965) BREAK enabled
=15 _DOSG63C1
_TVPPFM - (TeleVideo 965) Page print flip on
=16_DOSG63C4
=17 _DOSG64C1
_TVSBSTM - (TeleVideo 965) Send block boundaries from screen/page top
=18 _DOSG64C4
_TVSBEDM - (TeleVideo 965) Send block boundaries end of display/cursor
=19 _DOSG32C8
_TVASCRM - (TeleVideo 965) Autoscroll mode
=20_TVENHANM - (TeleVideo 965) Enhanced mode
=21_TVWSTARM - (TeleVideo 965) WordStar mode
=22_TVAUXHM - (TeleVideo 965) Set aux./main as host
=23_TVAPPM - (TeleVideo 965) Application mode
=24---
=25_TVRCAPSM - (TeleVideo 965) Reverse CAPS LOCK
=26_TVCAPSM - (TeleVideo 965) CAPS LOCK on
=27_TVREC2M - (TeleVideo 965) Secondary rec. on
=28_TVACKM - (TeleVideo 965) ACK mode
=29_TVAFLM - (TeleVideo 965) Auto font load
=114_DOSG64C4JM
=115_DOST80C3JM
ModeName
>1 HPMPM - (HP) Multipage mode
_ZDSL25
_CITDSSSM
_SUNPGM
>2 HPMLM - (HP) Memory Lock mode
_ZDSKCL
_CITVTSSKM
>3_ZDSHSM
_PC98L20
_CITHKNM
>4_ZDSCBL
_CITFFCDM
>5_ZDSCDE
_CITCTRVM
>6_ZDSKSH
_CITDIXM
>7_ZDSKAM
>8_ZDSALF
>9_ZDSACR
_CITSWCEM
>10_CITDWEM
>11_CITEPEM
>12_CITTSPM
>13_CITCRTSM
>14_CITHFDUPM
ModeName
>25zMDM
>26zKCM
>27zKPCM
>28zKRM
>29zRLM
>30zDBM
>31zBKCM
>32zBNCM
>33zWFM
>34zWBM
>35zDDM
>36zSPM
>37zAXM
>38zAPM
>39zSSM
>40zHDM
>41zTPDM
>42zLTM
>43zCSTM
>44zFSTM
>45zGRTM
>46zAKDM
>47zFRM
>48zHAM
>49zGAPM
>50zFIM
>51zACM
>52zMKM
>53zCLIM
>54zINM
>55zCNM
>56zICM
>57zMMM
>58---
>59zIVM*km
>60---
>61Z8RCM*km

その他未整理のモード

端末毎の対応モードの一覧

# ANSI Modes

| ANSI      |         1111111111222|333333333 4 4|
|   Modes   |1234567890123456789012|012345678 0 2|
|-----------|----------------------|-------------|
| ECMA-48   |******************DD**|RRRRRRRRR-R-R| D=deprecated R=reserved
| vt100     |                   *  |             |
| vt102     | * *               *  |             |
| vt220     | * *       *       *  |             |
| vt320     | ***     * *       *  |             |
| vt420     | ***       *       *  |             | vt510,vt520 は同じ。
|-----------|----------------------|-------------|
| foot      |   *                  |         - - |
| rxvt      |   *                  |         - - |
| urxvt     |   *               *  |         - - |
| Kitty     |   *               *  |         - - |
| iTerm2    |   *               *  |         - - |
| Poderosa  |   *       *          |         - - |
| tmux      |   *                  |    *    - - |
| screen    |   *               *  |    *    - - |
| xterm     | * *       *       *  |         - - |
| RLogin    | * * *     *     * *  |         - - |
| Tera Term | * *       *       *  |   **    - - |
| mlterm    | * *       *       *  |   **    - - |
| mintty    |   *   *   *     * *  |   **    - - |
|-----------|----------------------|-------------|
| contra    |** * ***** *       ***|   **    - - |


# DEC Modes

| DEC       |                   |       |              |  |       |      | |  |     11111 1 11111111111|
|   ? Modes |         1 111 1 11|22 2 23|333 3 44444444|55|5 5 566|6 6666|7|88|9999900000 0 00011111111|
|           |1234567890 234 6 89|45 7 90|456 8 01234567|12|5 7 901|4 6789|3|01|5678901234 6 78901234567|
|-----------|-------------------|-------|--------------|--|-------|------|-|--|------------------------|
| vt100     |********* -   - -  |  - -  |   - -   -    |  | - -   | -    | |  |          - -           |
| vt102     |********  -   - -**|  - -  |   - -   -    |  | - -   | -    | |  |          - -           |
| vt220     |********  -   - -**| *- -  |   - -  *-    |  | - -   | -    | |  |          - -           |
| vt320     |********  -   - -**| *- -  |   - -  *-    |  | - -   | -* * | |  |          - -           |
| vt420     |********  -   - -**| *- -  |   - -  *-    |  | - - **|*-****|*| *|          - -           |
| vt510     |********  -   - -**| *- -  |***- -  *-    |  | -*- * |*-****|*| *|**********-*-           |
| vt520     |********  -   - -**| *- -  |***- -  *-    |  | -*- * |*-****|*|  |**********-*-    *******|
|-----------|-------------------|-------|--------------|--|-------|------|-|--|------------------------|
| Poderosa  |*   ***   -   - -  | *- -  |   - -   -   x|  | - -   | -    | |  |          - -           |
| tmux      |* *  **   -*  - -  | *- -  |   - -   -   x|  | - -   | -    | |  |          - -           |
| wt        |*** ***   -*  - -  | *- -  |   - -*  -    |  | - -   | -    | |  |          - -           |
| screen    |*** *** x -*  - -  | *- -  |   - -   -   x|  | - -   | -    | |  |          - -           |
| foot      |* *****   -*  - -  | *- -  |   - -   - x x|  | - -   | -    | |* |          - -           |
| Kitty     |* ******x -*  - -  | *- -  |   - -  *-    |  | - -   | -    | |  |          - -           |
| VTE       |* * *** x -   - -  | *- -  |   - -x  -   x|  | - -   | -*   | |  |          - -           |
| rxvt      |******* x*-   - -  | *- - *| r - -x  -   x|  | - -   | -**  | |  |          - -           |
| urxvt     |******* x -*  - -  | *- - *| r - -x  -   x|  | - -   | -**  | |  |          - -           |
| iTerm2    |********  -   - -  | *- -  |   - -xx - x x|  | - -   | -   *| |  |          - -           |
| mintty    |*** ****x -*  - -  | *- - *|   - -x *- x x|  | - -   | -** *| |* |*         - -           |
| Tera Term |* * ****x -*  - - *| *- -  |   -*-   -   x|  | - -*  | -** *| |  |*         - -           |
| RLogin    |********x -*  - - *| *- -  |   -*-xx - x x|  | - -   | -** *| |* |*         - -          *|
| xterm     |********x*-*xx- -**| *- - *| r -*-xx*-xxxx|  | - -   | -** *| |* |*         - -           |
|-----------|-------------------|-------|--------------|--|-------|------|-|--|------------------------|
| contra    |* ******x -*xx- -  | *- -  |   - -x  - x x|  | - -   | -** *| |  |*         - -           |


# Private Modes

| Origin    |xterm   |rxvt  |xterm                      | | |vte| |mintty       |T|RLogin                         |#1   |w| T=Tera Term, #1=drcsterm
|-----------|--------|------|---------------------------|-|-|---|-|-------------|-|-------------------------------|-----|-| w=Windows Terminal
| Modes?    |        |  | | |                    |  | | | | |   | |           77| |                               |     | |
|           |11111111|11|1|1|1111 111111 11111111|11|1|2|2|2|122|1|7777777777777|8|8888888888888888888888888888888|88888|9|
|           |00000000|00|0|0|0000 000000 00000000|00|0|0|0|0|255|3|7777777777700|2|4444444444444444444444444444444|88888|0|
|           |00000000|11|1|2|3333 344444 44445555|66|7|0|1|2|400|3|01223668889X9|0|0000000112233334444444555555555|00000|0|
|           |01234567|01|5|1|4567 901234 67890123|01|0|4|7|6|301|7|01780673676X6|0|0123456678957890123689012345678|01234|1|
|-----------|--------|--|-|-|--------------------|--|-|-|-|-|---|-|-------------|-|-------------------------- ----|-----|-|
| xterm     |********|**|*| |****-******-********|**| |*| | |   | |  *     *    |*|                               |     | |
| rxvt      |*       |**| | |    -      - **     |  | | | | |   | |             | |                               |     | |
| urxvt     |* ****  |**|*|*|    -      - ***    |  | |*| | |   | |             | |                               |     | |
| VTE       |***** **|  | | |  * -      - ***    |  | |*| | |***| |             | |                               |     | |
| mintty    |* ***** |  |*| |   *-   ** -****    | *| |*| | | **| |*************| |                        *      |     | |
| Tera Term |******* |  |*| |    -      - ***    |  | |*| | |   | |  *     *    |*|                               |     | |
| RLogin    |******  |  |*| |    -      - ***    |  | |*| | |   | |  *     *    |*|*******************************|*    | |
|-----------|--------|--|-|-|--------------------|--|-|-|-|-|---|-|-------------|-|-------------------------------|-----|-|
| tmux      |* ***** |  |*| |    -      - * *    |  | |*| | |   | |             | |                               |     | |
| Poderosa  |******* |  |*| |    -      - ***    |  | |*| | |   | |             | |                               |     | |
| screen    |**** *  |  | | |    -      - ***    |  | |*| | |   | |             | |                               |     | |
| Kitty     |* ***** |  |*| |    -      -   *    |  | |*|*| |   | |             | |                               |     | |
| iTerm2    |* ***** |  |*| |    -      -   *    |  | |*| | |   |*|             | |                               |     | |
| wt        |* ** ***|  | | |    -      -   *    |  | | | | |   | |             | |                               |     |*|
| foot      |***** **|  |*| |*** -   *  - ***    |  |*|*| |*|   | |             | |                        *      |     |*|
|-----------|--------|--|-|-|--------------------|--|-|-|-|-|---|-|-------------|-|-------------------------------|-----|-|
| contra    |******* |  |*| |    -      - *** ***|**| |*| | |   | |             | |                               |     | |

装置の構成と双方向 (bidi) 対応

装置の構成

[ECMA-48/6.1] 装置 (device) (ディスプレイやプリンターを想定) は3つの部分で構成される。 入力部 (input component)・表示部 (presentation component)・データ部 (data component) である。 特にデータ部は双方向の文字列表示 (bidi) に対応する為に用意するが、単方向しか対応しなければ表示部と等価なので省略可能である。 表示部・データ部は共にそれぞれの集まりであり、行は文字位置 (character position) の集まりである。 表示部・データ部の行の並びには方向性があり行進行 (line progression) という。 表示部・データ部の各行にはそれぞれ自然な方向があり、 それぞれ文字進路 (character path)・文字進行 (character progression) という。 行及び文字位置は、1 から始まる整数によって、行進行および文字進路・文字進行の順序で番号付けられる。 表示部は実際に表示されるときの固有の座標(行・列)を持ち、 データ部は内部的な取り扱いで使用する固有の座標を持ち、一対一に対応がある。 表示部・データ部はそれぞれカーソルを持ち、現在表示位置 (active presentation position)・現在データ位置 (active data position) という。 文字の挿入によるカーソルの移動は、現在データ位置を行内の次の文字位置に移動するものである。これを暗黙的移動 (implicit movement) という。 制御機能によるカーソルの移動は現在データ位置もしくは現在表示位置に作用する。これを明示的移動 (explicit movement) という。 現在表示位置と現在データ位置は連動する。つまり一方の位置に対する移動操作によって、他方が間接的移動 (indirect movement) する。 何れの移動も、存在しない場所に移動しようとしたときの動作は処理系依存である (例えば行折り返しをしたり、動作を停止したりする)。

明示されてはいないが、ECMA-48 および ECMA-TR/53 の記述を総合するに、 以下の様なことが言えると考えられる。

略号符号化表現
SPD CSI Ps1 ; Ps2 SP S
SCP CSI Ps1 ; Ps2 SP k
SIMDCSI Ps1 ^

行とページの範囲

略号符号化表現
SLH CSI Ps SP U
SLL CSI Ps SP V
SPH CSI Pn SP i
SPL CSI Pn SP j
DECSTBM CSI Pn1 ; Pn2 r
DECSLRM CSI Pn1 ; Pn2 s

文字列 (string)

[ECMA-48/6.2.1, 8.3.114, 8.3.127] データ部にある文章は複数の文字を含む文字列 (string) によって構成されているとして処理される。 各文字列は、制御機能もしくは上位の手続きに従って決まる方向 (direction) を持つ。 既定の方向は現在の文字進路と同じ方向である。

例えば、方向付き文字列 (directed string), 反転文字列 (reversed string)はデータ部の中の領域で、 それぞれ SDS, SRS によって始まりと終わりを指定される。 これらはデータ部での文字進行には影響を与えず、 文字列の内容はそのままそれまでの文章の続きとして記録される。 文字列は、SDS, SRS の区別なく任意の階層で入れ子にする事ができる。 ECMA-48 では入れ子文字列内部における現在データ位置を指定しない。 入れ子文字列を閉じる度に、一つ外側の入れ子文字列の方向が復元される。 SDS, SRS 文字列内部で CVT, HT, SCP, SPD, VT を呼び出した時の動作は規定されない。 SDS, SRS 文字列内部で領域定義の制御機能 DAQ, EPA, ESA, SPA, SSA を呼び出してはならない。

[ECMA-TR/35] 文章による定義はないが、Annex A に動作例が載っている。 動作例から以下のような規則が読み取れるが、疑問が多々残る。

以下に関連する制御機能を挙げる。

略号符号化表現名称
SDS CSI Ps1 ]Start Directed String
SRS CSI Ps1 [Start Reversed String
ALMU+061CArabic letter mark
LRMU+200ELeft-to-right mark
RLMU+200FRight-to-left mark
LREU+202ALeft-to-right embedding
RLEU+202BRight-to-left embedding
PDFU+202CPop directional formatting
LROU+202DLeft-to-right override
RLOU+202ERight-to-left override
LRIU+2066Left-to-right isolate
RLIU+2067Right-to-left isolate
FSIU+2068First strong isolate
PDIU+2069Pop directional isolate

現在位置 (active position)

基本制御

略号符号化表現対象意味
SP SP データ部空白を挿入し、一文字進む
BS BS データ部一文字戻る
LF LF DCSM 一行下
INDINDDCSM?
RI RI DCSM 一行上
FF FF 表示部次の頁
CR CR DCSM 行頭
NELNELDCSM 次行の行頭

移動

ここに、方向と移動量または絶対値を具体的に指定して移動する制御機能をまとめる。 表示部は SPD に応じて縦書きだったりアラビア語の様に右から左に成長する行を持ったりすることに注意する。 従って、見た目の上下左右で移動する制御機能 CUU, CUD, CUF, CUB と、 論理的な行・文字で移動する制御機能 CPL, CNL, CUP, CHA を区別する必要がある。 更に、データ部で (方向付き文字列に影響されずに) 移動する一連の制御機能 HPB, HPR, VPB, VPR, HVP, HPA, VPAも区別する。

データ部で移動 表示部で移動
(方向: 行・文字指向)
表示部で移動
(方向: 見た目の上下左右)
現在位置の移動先
略号符号化表現 略号符号化表現 略号符号化表現
VPBCSI Pn k CPLCSI Pn F CUUCSI Pn A Pn 行上 (CPL は更に行頭)
VPRCSI Pn e CNLCSI Pn E CUDCSI Pn B Pn 行下 (CNL は更に行頭)
HPBCSI Pn j - CUBCSI Pn D Pn 文字左
HPRCSI Pn a - CUFCSI Pn C Pn 文字右
HVPCSI Pn1 ; Pn2 f CUPCSI Pn1 ; Pn2 H - Pn1 行目の Pn2 文字目
VPACSI Pn d - - Pn 行目
HPACSI Pn ` CHACSI Pn G - Pn 文字目

互換性

位置記録

問い合わせ

略号用途符号化表現意味
MW制御MWメッセージ待ち表示の設定
DSR(5)制御CSI 5 n装置の状態を確認
DSR応答CSI Ps n
DSR(6)制御CSI 6 nカーソル位置を取得
CPR応答CSI Pn1 ; Pn2 R

スクロール

略号符号化表現意味
SUCSI Pn S上にスクロール
SDCSI Pn T下にスクロール
SLCSI Pn SP @左にスクロール
SRCSI Pn SP A右にスクロール

タブ (tabulation)

[ECMA-48/6.7] タブ (tabulation) は文字列を縦横に綺麗に並べる為の仕組みである。 そのために表示部で指定される文字位置はまたは行をタブ位置 (tabulation stop) という。 文字タブ位置 (character tabulation stop) は CTC, HTS, TAC, TALE, TATE, TCC によって設置され、 行タブ位置 (line tabulation stop) は VTS によって設置される。 フィールド (field) はある文字タブ位置から次の文字タブ位置の直前までの文字列を指す。 フィールド内の文字位置の順序、乃至、行内の文字タブ位置の順序はその行の文字進路に従う。

各文字タブ位置には文字列の揃え方を指定する属性がある。 この文書では各属性値に対応する制御機能名 TATE, TALE, TAC, TCC を以てその属性値を表す事にする (T.416/9.1.13 ではそれぞれの属性値に明示的に名前が割り当てられている)。 既定値は TATE である。

属性値T.416 alignment意味
TATE (終端揃えタブ)start-aligned 以降の文字列の最初の文字がタブ位置に来る様に揃える。
TALE (始端揃えタブ)end-aligned 以降の文字列の最後の文字がタブ位置に来る様に揃える。
TAC (中央揃えタブ)centred 文字列の最初の文字と最後の文字がタブ位置からできるだけ等距離になる様に揃える。
TCC (文字中央タブ)aligned-around TCC で指定した揃え文字がタブ位置に来る様に揃える。
揃え文字が文字列中に複数現れるときは最初のものを使う。
揃え文字が文字列中に現れない時は TATE と同様に振る舞う。

Note: ECMA-48 4th 以前では水平タブ位置 (horizontal tabulation stop)・垂直タブ位置 (vertical tabulation stop) と呼称していたが、 5th edition での SPD による縦書きなどの対応に従って、 文字タブ位置 (character tabulation stop)・行タブ位置 (line tabulation stop) に改められた。

タブの設置

略号符号化表現意味
HTSHTS現在表示位置に文字タブ位置を設置
VTSVTS現在表示行に行タブ位置を設置
HTSACSI Pn... SP N現在表示行の文字タブ位置を設定
TATECSI Pn1 SP `現在表示行 Pn1 文字目に各属性のタブを設置
TALECSI Pn1 SP a
TAC CSI Pn1 SP b
TCC CSI Pn1 ; Pn2 SP c
TSRCSI Pn SP d現在表示行 Pn 文字目の文字タブ位置を解除
CTCCSI Ps Wタブ位置の操作
TBCCSI Ps gタブ位置の解除

タブ移動

略号符号化表現意味
HT HT次の文字タブ位置
HTJHTJフィールド右寄せ・次の文字タブ位置
VT VT次の行タブ位置
CHTCSI Pn I
CBTCSI Pn Z
CVTCSI Pn Y
STABCSI Pn SP ^

挿入・削除

略号符号化表現意味
SEECSI Ps QDCH, ICH, DL, IL のシフト範囲を規定
DCHCSI Pn PPn 文字切除
ECHCSI Pn XPn 文字消去
ICHCSI Pn @Pn 文字挿入
DL CSI Pn MPn 行切除
IL CSI Pn LPn 行挿入
EL CSI Ps K行内の消去
EF CSI Ps Nフィールド内の消去
EA CSI Ps O領域内の消去
ED CSI Ps J頁内の消去

互換性

Format effector

HTSA

TODO

■ 以下 xterm の CSI Sequence (未だ纏めていない物)

略号符号化表現
DECSEDCSI ? Ps J
DECSELCSI ? Ps K
(IHMT) CSI Ps ; Ps ; Ps ; Ps T
REP CSI Pm b
MC CSI Pm i
DECMC CSI ? Pm i
DECDSR CSI ? Ps n
DECSTR CSI ! p
DECSCL CSI Ps ; Ps " p
XTREST CSI ? Pm r
DECCARACSI Ps ; Ps ; Ps ; Ps ; Pm $ r
XTSAVE CSI ? Pm s
XTWOP CSI Ps ; Ps ; Ps t
DECRARACSI Ps ; Ps ; Ps ; Ps ; Pm $ t
DECCRA CSI Ps ; Ps ; Ps ; Ps ; Ps ; Ps ; Ps ; Ps $ w
DECEFR CSI Ps ; Ps ; Ps ; Ps ' w
DECREQTPARMCSI Ps x
DECSACE CSI Ps * x
DECFRA CSI Ps ; Ps ; Ps ; Ps ; Ps $ x
DECERA CSI Ps ; Ps ; Ps ; Ps $ z
DECSERA CSI Ps ; Ps ; Ps ; Ps $ {

端末適合レベル

問い合わせ - 端末識別

略号用途符号化表現
DECTSR応答DCS 1 $ s hh hh hh hh ST
DDD1応答ESC ) 1
DDD2応答ESC ) B
DDD3応答ESC ( 1

問い合わせ - 制御機能の状態

略号用途符号化表現
DECRQSS制御DCS $ q Seq ST
DECRPSS応答DCS Ps $ r Seq ST

端末テスト

略号符号化表現
DECALNESC # 8

端末サイズ

略号符号化表現
DECSCPPCSI Pn $ |

カーソル表示

略号 符号化表現
DECSCUSRCSI Ps SP q

代替画面 (Alternate Screen Buffer)

その他

描画属性

文字挿入時の属性

略号符号化表現
SGR CSI Pm m
PLD PLD
PLU PLU
SCO CSI Ps SP e
DECSCA CSI Ps " q

領域

領域 (area) は DAQ, SSA, ESA, SPA, EPA によって指定された文字位置の連続する集合である。 それぞれの制御機能は領域の開始・終了を示す。 DAQ は属性化領域 (qualified area) を定義する。 属性化領域には様々な属性を付加する事ができる。 SSA, ESA は選択領域 (selected area) を定義する。 選択領域の内容はデータストリームの送信 (transmission) または補助装置への転送 (transfer) の対象となる。 SPA, EPA は保護領域 (guarded area) を定義する。 保護領域の内容は GATM の設定に応じて送信・転送が制限される (guarded)。 保護領域の内容は ERM の設定に応じて消去が制限される (protected)。

略号符号化表現
DAQCSI Ps ; ... o
SSASSA
ESAESA
SPASPA
EPAEPA

行に対する属性

SGR 詳細

一覧表

名称 Sgr 名称 Sgr
sgrDefault 0 sgrProportional 26
sgrBold 1 sgrNegaOff 27
sgrFaint 2 sgrInvisibleOff 28
sgrItalic 3 sgrStrikeOff 29
sgrUnderline 4 sgrAnsiColor 30-37, 40-47
sgrBlink 5 sgrISO8613_6Color 38, 48
sgrRapidBlink 6 sgrFgDefault 39
sgrNega 7 sgrBgDefault 49
sgrInvisible 8 sgrProportionalOff 50
sgrStrike 9 sgrFrame 51
sgrAnsiFont 10-19sgrCircle 52
sgrCharsetASCII 10 sgrOverline 53
sgrCharsetL 11 sgrFrameOff 54
sgrCharsetR 12 sgrOverlineOff 55
sgrFraktur 20 sgrAnsiReserved 56-59
sgrDoubleUnderline 21 sgrIdeoDecoration 60-64
sgrBoldOff 22 sgrIdeoDecorationOff65
sgrItalicOff 23 sgrIdeoDecoration2 66-69
sgrUnderlineOff 24 sgrAixColor 90-97, 100-107
sgrBlinkOff 25 sgrDefaultColor 100
名称SGR
sgrKittyDecorationClear 4:0
sgrKittyDecorationSingle4:1
sgrKittyDecorationDouble4:2
sgrKittyDecorationCurly 4:3
sgrMinttyDecorationDotted4:4
sgrMinttyDecorationDashed4:5
sgrKittyDecorationFg 58違反
sgrKittyDecorationFgOff 59違反
sgrMinttySHADOW 1:2
sgrMinttyOVERSTRIKE 8:7
sgrMinttySUPERSCR 73
sgrMinttySUBSCR 74
sgrMinttySUPSUB_CLEAR 75
# 各端末の対応

D=deprecated R=reserved -=undefined     vt102=vt100
;=only_semicolon :=only_colon           vt320,vt420=vt220
k=Kitty m=mintty X=独自実装             vt520=vt510
Poderosa: 5,0=それぞれ5,0と同じ効果

|          |                                                                                              |   |        |11111111|
|          |                  1111111111222222222233333333333333344444444444444455555555555555556666666666|777|99999999|00000000|
|          |0112344444445678890123456789012345678901234567888888901234567888888901234567888888890123456789|345|01234567|01234567|
|----------|--:---::::::----:-----------------------------::::::---------::::::----------::::::-----------|---|--------|--------|
|          |  2   012345    7                             012345         012345          012345           |   |        |        |
|----------|----------------------------------------------------------------------------------------------|---|--------|--------|
| ECMA-48  |** ***      **** *****************D***********::::::********* :::::*D*****RRRRRRRRRR**********|   |        |        |
| vt100    |**   *      * *                                                           ---                 |   |        |        |
| vt220    |**   *      * *               * ** *                                      ---                 |   |        |        |
| vt510    |**   *      * **  ***         * ** **                                     ---                 |   |        |        |
| vt525    |**   *      * **  ***         * ** ** ********      *********      *      ---                 |   |        |        |
|----------|----------------------------------------------------------------------------------------------|---|--------|--------|
| Tera Ter |**   *      * *               * ** *  ********  *  **********  *  **      ---                 |   |********|********|
| Poderosa |**   *      *5**              X ** ** ********  ;  ;*********  ;  ;*                          |   |********|********|
| mlterm   |** ***      **** *           ***** ***********  *  **********  *  **   * *---                 |   |********|********|
| rxvt     |**   *      * *               * ** *  ********     ;*********     ;*      ---                 |   |********|********|
| urxvt    |**  **      ****             X****X*  ********  ;  ;*********  ;  ;*      ---                 |   |********|********|
| screen   |** ***      * *               **** *  ********  ;  ;*********  ;  ;*      ---                 |   |********|********|
| iTerm2   |** ***      ***  *            **** * *********  *  **********  ;  ;*      ---                 |   |********|********|
| xterm    |** ***      **** *           ***** ***********  *  **********  *  **      ---                 |   |********|********|
| Kitty    |** ***kkkk    *  *           ****  * *********  *  **********  *  **      ---  k  kk          |   |********|********|
| tmux     |** ***kkkkkk* ** *            **** ***********  *  **********  *  **   * *---  k  kk          |   |********|********|
| mintty   |**m***kkkkkk****m***************** ***********  *::**********  *::** X****---  k::kk          |mmm|********|********|
| RLogin   |** ***      **** *****************************  *  **********  *  **X*****---       XXXXXX    |   |********|********|
| wt       |** ***      * ** *            **** ***********  ;  ;*********  ;  ;*   * *                    |   |********|********|
| foot     |** ***      * ** *            **** ***********  *  **********  *  **                          |   |********|********|
|----------|----------------------------------------------------------------------------------------------|---|--------|--------|
| contra   |** ***kkkkkk**** *********************************************************---kkkkkkk**********|mmm|********|********|

既定に戻す

太字

イタリック

下線

点滅

反転

不可視

打ち消し線

フォント

プロポーショナル (deprecated)

前景色・背景色

囲み線

上線

(予約)

CJK装飾

上付き・下付き

互換性

ユーザ入力の設定

キーボード入力

キー入力の符号化表現

ここでは xterm に於ける実装を基本形としてキー入力の符号化表現について説明する。以下はカーソルキーである。

カーソルキー
keyname符号化表現
insertCSI 2 ~
deleteCSI 3 ~
home CSI H / SS3 H
end CSI F / SS3 F
prior CSI 5 ~
next CSI 6 ~
up CSI A / SS3 A
down CSI B / SS3 B
right CSI C / SS3 C
left CSI D / SS3 D
begin CSI E / SS3 E
ファンクションキー
keyname符号化表現keyname符号化表現
f1 SS3 P f11CSI 2 3 ~
f2 SS3 Q f12CSI 2 4 ~
f3 SS3 R f13CSI 2 5 ~
f4 SS3 S f14CSI 2 6 ~
f5 CSI 1 5 ~f15CSI 2 8 ~
f6 CSI 1 7 ~f16CSI 2 9 ~
f7 CSI 1 8 ~f17CSI 3 1 ~
f8 CSI 1 9 ~f18CSI 3 2 ~
f9 CSI 2 0 ~f19CSI 3 3 ~
f10CSI 2 1 ~f20CSI 3 4 ~

キー入力の制御機能

略号符号化表現
DECKPAM ESC =
DECKPNM ESC >

マウス追跡 (Mouse Tracking)

DEC Text Locator Extension

ロケータ位置 (マウスポインタの位置に対応すると考えて良い) を報告する仕組み。 設定でピクセル単位での位置検出もできる。

ISO/IEC 2022 の制御機能

ISO 2022 は文字集合を動的に切り替える事で様々な文字を扱える様にする枠組みである。 7 bit または 8 bit のコードが幾つかの領域に分けられていて、 それぞれの領域毎に文字集合の切り替えを行う。

C0領域00/00 - 01/15制御文字
GL領域02/01 - 07/14図形文字
C1領域08/00 - 09/15制御文字
GR領域10/00 - 15/15図形文字

但し、SP (02/00) 及び DEL (07/15) は GL 領域には含まれない事に注意する。 SP 及び DEL は文字集合切り替えの状態に拘らず不変である。 文字集合の切り替えには ESC シーケンスを用いる。 C0領域に割り当てることのできる文字集合は必ず 01/11 が ESC になっていて、 文字集合の切り替えができなくなる事はない。

符号構造アナウンス

ACD は通信の初めに文字コードで有効な G0 G1 G2 G3 から GL GR へのシフトの構造を伝達する為の制御機能である。 Ft に指定する文字で構造を指定する。

番号符号化表現機能(7bit)機能(8bit)
1ESC SP A(GL=G0 固定)
2ESC SP BSI,SOLS0,LS1R
3ESC SP C使用不可(GL=G0, GR=G1 固定)
4ESC SP DSI,SO
5ESC SP EECMA-35/11 にある 7/8bit 変換完全対応?
6ESC SP FC1 を ESC Fe で符号化 S7C1T: C1 を ESC Fe で符号化
7ESC SP G S8C1T: C1 を CR で符号化
8ESC SP H94文字集合のみ使用可能
9ESC SP I94/96文字集合の何れも使用可能
10ESC SP J(8bitでも)7bit符号を使用
11ESC SP K使用不可8bit符号を使用
12ESC SP LANSI conformance Lv1 (dpANS X3.134.1), ECMA-43 Lv1
13ESC SP MANSI conformance Lv2 (dpANS X3.134.1), ECMA-43 Lv2
14ESC SP NANSI conformance Lv3 (dpANS X3.134.1), ECMA-43 Lv3
15ESC SP O(予約)
16ESC SP PSILS0
17ESC SP Q(予約)
18ESC SP RSOLS1
19ESC SP SLS1R
20ESC SP TLS2LS2
21ESC SP ULS2R
22ESC SP VLS3LS3
23ESC SP WLS3R
24ESC SP X(予約)
25ESC SP Y(予約)
26ESC SP ZSS2 (GL)
27ESC SP [SS3 (GL)
28ESC SP \-SS2,SS3(GR)
29-63...(予約)
番号符号化表現機能(7bit)機能(8bit)
(私用ACS)ESC SP 6S7C1R (DECTC1)
(私用ACS)ESC SP 7(無効)S8C1R (DECAC1)

文字集合の指示

ISO/IEC 2022 の文字集合は6種類に分類される。 C0制御文字集合、C1制御文字集合、94図形文字集合、96図形文字集合、 94n図形文字集合、96m図形文字集合である。 C0/C1制御文字集合は、それぞれC0/C1領域に直接割り当てて使えるようにする("指示"という)。 94/96/94n/96n図形文字集合は、 一端G0,G1,G2,G3と呼ばれる領域の何れかに割り当ててから("指示"という)、 更に、G0,G1,G2,G3から2つをGL,GRに割り当てて使う("シフト"という)。 これらの指示およびシフトは、 それぞれの文字集合の種類毎に用意された制御機能を用いて行う。

文字集合の種類指示領域
C0C1G0G1G2G3
C0制御文字集合CZD
C1制御文字集合C1D
94図形文字集合GZD4G1D4G2D4G3D4
96図形文字集合 G1D6G2D6G3D6
94n図形文字集合GZDM4G1DM4G2DM4G3DM4
96n図形文字集合 G1DM6G2DM6G3DM6

SetI* F の形式を持つ。 文字集合の種類毎に、それぞれの文字集合に一意な Set が与えられる。

[ECMA-35/14.3.2, Note 46] GZDM4 については歴史的経緯から一部の文字集合 (Set = @, A, B) について ( を省略して ESC $ Set とする事になっている。 また [T.61/E.3.1.2] は DRCS の場合にも ( を省略するとしている。

更に、登録文字集合に改訂 (文字の追加) があった場合には、 改訂版を指定する為に IRR を前述の指示機能の直前に指定する。 @-~ で改訂番号1-63を指定する。 互換性の為に改訂は文字の追加のみで文字の削除や置換は行わないとする。

規格上は GZD6, GZDM6 に相当する制御機能は定義されていない。 ISO/IEC 2022 - Wikipedia によると初期の版ではここに追加の 94 文字集合を G0 に指示する機能が割り当てられていたが、 96文字集合が導入された際に取り除かれたそうだ。確認してみると、ECMA-35 3rd までは機能があった (当時は制御機能に名前は割り当てられていなかった) が ECMA-35 4th でなくなった様である。 一方で DEC による実装では96文字集合の DRCS に対して使うことができた気がしたが今探しても見つからない[要検証]

図形集合のシフト

私用 94 図形文字集合

ToDo

Set名称
1DDD3, DDD1 (terminal-to-host)

登録 C0 制御文字集合

SetIR名称
@IR-1C0 Set of ISO 646
AIR-7NATS, C0 Set
CIR-26IPTC, C0 Set
DIR-36C0 Set of ISO 646 with SS2 instead of IS4
BIR-48INIS, Control Set
FIR-74C0 for Japanese standard JIS C 6225-1979
GIR-104Minimum C0 Set for ISO 4873
EIR-106Teletex primary set of Control Functions CCITT Rec. T.61
HIR-130C0 Set of ISO 646 without SI and SO ASMO-662 and COMECON ST SEV 358
IIR-132Primary Control Set of Data Syntax I of CCITT Rec. T.101
JIR-134Primary Control Set of Data Syntax II of CCITT Rec. T.101
KIR-135Primary Control Set of Data Syntax III of CCITT Rec. T.101
LIR-140C0 Set of ISO 646 with EM replaced by SS2 - Czechoslovak Standard CSN 369102

登録 C1 制御文字集合

SetIRRIR名称
EIR-40Additional Control Functions for Bibliographic Use according to DIN 31626
@IR-56Attribute Control set for UK Videotex British Telecom
BIR-67Additional Control Functions for Bibliographic Use according to ISO 6630
AIR-73Attribute Control Set for Videotex CCITT
CIR-77C1 Control Set of ISO 6429-1983
GIR-105Minimum C1 Set for ISO 4873
HIR-107Teletex Supplementary Set of Control Functions CCITT Rec. T.61
B@IR-124Upward Compatible Version of ISO 6630 (Registration 67)
DIR-133Supplementary Control Set of Data Syntax I of CCITT Rec. T.101
FIR-136Supplementary Control Set of Data Syntax III of CCITT Rec. T.101

登録 94 図形文字集合

SetIR名称
@IR-2 IRV of ISO 646 : 1983
AIR-4 ISO 646, British Version BSI 4730
BIR-6 ISO 646, USA Version X3.4 - 1968
CIR-8-1NATS, Primary Set for Finland and Sweden
DIR-8-2NATS, Secondary Set for Finland and Sweden
EIR-9-1NATS, Primary Set for Denmark and Norway
FIR-9-2NATS, Secondary Set for Denmark and Norway
GIR-10ISO 646, Swedish Version SEN 850200 (Ann. B)
HIR-11ISO 646, Swedish Version for Names, (SEN 850200 Ann.C)
IIR-13Katakana Character Set JIS C6220-1969
JIR-14ISO 646, Japanese Version for Roman Characters JIS C6220-1969
KIR-21ISO 646, German Version DIN 66083
LIR-16ISO 646, Version for Portuguese, ECMA (Olivetti)
MIR-39Character Set for African Languages, DIN 31625 and ISO 6438
NIR-37Basic Cyrillic Character Set, ECMA (Cii Honeywell-Bull) and ISO 5427
OIR-38Extended Graphic Character Set for Bibliography, DIN 31624
PIR-53Extended Graphic Character Set for Bibliography ISO 5426-1980
QIR-54Extension of the Cyrillic Character Set of Reg. 37, ISO 5427-1981
RIR-25ISO 646, French Version, NF Z 62010-1973 (Withdrawn in April 1985)
SIR-55Greek Character Set for Bibliography, ISO 5428-1980
TIR-57Coded Character Set for Information Interchange, Standard Chinese GB 1988-80
UIR-27Latin-Greek Character Set, ECMA (Honeywell-Bull)
VIR-47Character Set for Viewdata and Teletext (UK)
WIR-49INIS, Sub-set of the IRV
XIR-31Greek Character Set for Bibliography, ISO 5428
YIR-15ISO 646, Version for Italian, ECMA (Olivetti)
ZIR-17ISO 646, Version for Spanish, ECMA (Olivetti)
[IR-18Character Set for Greek, ECMA (Olivetti)
\IR-19Latin-Greek Character Set, ECMA (Olivetti)
]IR-50INIS, Non-standard Extension of Reg. 49
^IR-51INIS, Cyrillic Extension of Reg. 49
_IR-59Arabic Character Set CODAR-U IERA (Morocco)
`IR-60ISO 646, Norwegian Version NS 4551
aIR-61Norwegian Character Set, Version 2, NS 4551 (Withdrawn in June 1987)
bIR-70Supplementary Set for Videotex, CCITT
cIR-71Second Supplementary Set for Videotex (Mosaic), CCITT
d IR-72Third Supplementary Set for Videotex, (Mosaic), CCITT (superseded by Reg. 173)
IR-173Third supplementary set of Mosaic Characters/ Videotex and Facsimile
eIR-68 APL Character Set, Canadian APL Working Group
fIR-69 ISO 646, French Version NF Z 62010-1982
gIR-84 ISO 646, Version for Portuguese, ECMA (IBM)
hIR-85 ISO 646, Version for the Spanish languages, ECMA (IBM)
iIR-86 ISO 646, Hungarian Version Hungarian standard 7795/3
jIR-88 Greek Character Set ELOT, Hellenic Organization for Standardization (Withdrawn in November 1986)
kIR-89 7-bit Arabic Code for Information Interchange, Arab standard ASMO-449, ISO 9036
lIR-90 Supplementary Set for Use with Registration No.2
mIR-91 Japanese OCR-A graphic set JIS C6229-1984
nIR-92 Japanese OCR-B Graphic Set JIS C6229-1984
oIR-93 Japanese OCR-B, Additional Graphic Set, JIS C6229-1984
pIR-94 Japanese Basic Hand-printed Graphic Set for OCR JIS C6229-1984
qIR-95 Japanese Additional Handprinted Graphic Character Set for OCR JIS C6229- 1984
rIR-96 Katakana hand-printed Graphic Character Set for OCR JIS C6229-1984
sIR-98 E13B Graphic Character Set Japanese National Committee for ISO/TC97/SC2
tIR-99 Supplementary Set of Graphic Characters for Videotex and Teletext ANSI and Teletext ANSI and CSA (Withdrawn in November 1986)
uIR-102Teletex Primary Set of Graphic Characters CCITT Rec. T.61
vIR-103Teletex Supplementary Set of Graphic characters CCITT Rec. T.61
wIR-121Alternate Primary Graphic Set No. 1 CSA Standard Z 243.4-1985
xIR-122Alternate Primary Graphic Set No.2 CSA Standard Z 243.4-1985
yIR-137Mosaic-1 Set of Data Syntax I of CCITT Rec. T.101
zIR-141Serbocroatian and Slovenian Latin Alphabet
{IR-146Serbocroatian Cyrillic Alphabet
|IR-128Supplementary Set of graphic Characters for CCITT Rec. T.101, Data Syntax III
}IR-147Macedonian Cyrillic Alphabet
! @IR-150Greek Primary Set of CCITT
! AIR-151Character Set of Cuba
! BIR-170Invariant characters (82) of ISO/IEC 646
! CIR-207Variant of the ISO 7-bit kbdd character set for the Irish Gaelic language
! DIR-230Turkmen Alphabet
! EIR-231 American National Standard Extended Latin Alphabet Coded Character Set for Bibliographic Use (ANSEL)
! FIR-232 Turkmen character set for 8-bit kbds

登録 96 文字集合

SetIR名称
@IR-111 Right-hand Part of the Latin/Cyrillic Alphabet ECMA-113 (Version of June 1986)
AIR-100Right-hand Part of Latin Alphabet No.1 ISO 8859/1, ECMA-94
BIR-101Right-hand Part of Latin Alphabet No.2 ISO 8859/2, ECMA-94
CIR-109Right-hand Part of Latin Alphabet No.3 ISO DIS 8859/3, ECMA-94
DIR-110Right-hand Part of Latin Alphabet No.4 ISO DIS 8859/4, ECMA-94
EIR-123General Purpose Supplementary Graphic Set CSA Standard Z 243.4-1985
FIR-126 Right-hand Part of the Latin/Greek Alphabet Standard ELOT 928, ECMA-118, ISO DIS 8859/7
GIR-127Right-hand Part of the Latin/Arabic Alphabet ECMA-114, ISO 8859/6
HIR-138Latin/Hebrew Alphabet Standard ECMA-121
IIR-139Right-hand Part for Czechoslovak Standard CSN 369103
JIR-142Supplementary Set of Latin Alphabetic and non-Alphabetic Graphic Characters
KIR-143Technical Set
LIR-144Cyrillic part of the Latin/Cyrillic Alphabet
MIR-148Right-hand part of Latin Alphabet No.5
NIR-152Residual Characters from ISO 6937-2 : 1983
OIR-153Basic Cyrillic Character Set for 8-bit Codes
PIR-154Supplementary set for Latin Alphabets No.1, No.2 and No.5
QIR-155Basic Box Drawings Set
RIR-156Supplementary Set ISO/IEC 6937 : 1992
SIR-164CCITT Hebrew Supplementary Set
TIR-166Thai Set
UIR-167Arabic/French/German Set
VIR-157Supplementary Set for Latin Alphabet No. 6
XIR-158Sami (Lappish) Supplementary Set
YIR-179Baltic Rim Supplementary Set
ZIR-180Vietnamese Standard Code for Information Interchange
[IR-181Technical Character Set No.1: IEC Publication 1289
\IR-182Welsh variant of Latin Alphabet No. 1
]IR-197Sami supplementary Latin set
^IR-198Latin/Hebrew Alphabet
_IR-199Celtic Supplementary Latin Set
`IR-200Uralic Supplementary Cyrllic Set
aIR-201Volgaic Supplementary Cyrllic Set
bIR-203European Supplementary Latin Set ("Latin 9")
cIR-204Supplementary set for Latin-1 alternative with EURO SIGN
dIR-205Supplementary set for Latin-4 alternative with EURO SIGN
eIR-206Supplementary set for Latin-7 alternative with EURO SIGN
fIR-226Romanian Character Set for Information Interchange
gIR-208Ogham kbdd character set for information interchange
hIR-209Sami supplementary Latin set no 2
iIR-227Right-hand part of Latin/Greek alphabet
jIR-234Latin/Hebrew character set for 8-bit kbds
}IR-129Supplementary Set of Mosaic Characters for CCITT Rec. 101, Data Syntax III

登録 94n 文字集合

SetIRRIR名称
@IR-42 Japanese Character Set JISC C 6226-1978 ※ ESC $ ( @ の代わりに ESC $ @ を使う。
AIR-58 Chinese Character Set Chinese Standard GB 2312-80
ESC $ ( A の代わりに ESC $ A を使う。
BIR-168 Japanese Character Set JIS C 6226-1983
ESC $ ( B の代わりに ESC $ B を使う。
B@IR-87 Update Registration 87 Japanese Graphic Character Set for Information Interchange
IRR(@) ESC $ ( B の代わりに IRR(@) ESC $ B を使う。
CIR-149Korean Graphic Character Set, Korean Standard KSC 5601-1987
DIR-159Supplementary Japanese Graphic Character Set for Information Interchange
EIR-165CCITT Chinese Set
FIR-169Blissymbol Graphic Character Set
GIR-171Chinese Standard Interchange Code - Set 1, CNS 11643-1992
HIR-172Chinese Standard Interchange Code - Set 2, CNS 11643-1992
IIR-183Chinese Standard Interchange Code - Set 3, CNS 11643-1992
JIR-184Chinese Standard Interchange Code - Set 4, CNS 11643-1992
KIR-185Chinese Standard Interchange Code - Set 5, CNS 11643-1992
LIR-186Chinese Standard Interchange Code - Set 6, CNS 11643-1992
MIR-187Chinese Standard Interchange Code - Set 7, CNS 11643-1992
NIR-202DPRK Standard Korean Graphic Character Set for Information Interchange
OIR-228Japanese Graphic Character Set for Information Interchange --- Plane 1
PIR-229Japanese Graphic Character Set for Information Interchange --- Plane 2
QIR-233 Japanese Graphic Character Set for Information Interchange, Plane 1 (Update of ISO-IR 228)

DOCS: 他の文字符号化方式への切り替え

SetI? F の形式を持つ。 Set = @ は ISO 2022 に戻ってくる事を示す。 その他の Set は他の文字符号化方式に移行する事を示す。 Set = F の形式の文字集合については、 DOCS(@) を用いてまた ISO 2022 に戻ってくる事ができる。 中間バイトを一つ以上含む文字集合の場合には、 DOCS(@) で ISO 2022 に戻ってくる事はできない。

Set登録符号化方式
@ISO/IEC 2022
ASyntax of the North American Videotex/Teletex Presentation Level Protocol (NAPLPS), CSA T 500-1983
BUCS Transformation Format One (UTF-1)
CData Syntax I of CCITT Rec.T.101
DData Syntax II of CCITT Rec. T.101
EPhoto-Videotex Data Syntax of CCITT Rec. T.101
FAudio Data Syntax of CCITT Rec. T.101
GUTF-8 without implementation level
HVideotex Enhanced Man Machine Interface (VEMMI) Data Syntax of ITU-T Rec. T.107
/ @ISO/IEC 10646:1993, UCS-2, Level 1
/ AISO/IEC 10646:1993, UCS-4, Level 1
/ BVirtual Terminal service Transparent Set
/ CISO/IEC 10646:1993, UCS-2, Level 2
/ DISO/IEC 10646:1993, UCS-4, Level 2
/ EISO/IEC 10646:1993, UCS-2, Level 3
/ FISO/IEC 10646:1993, UCS-4, Level 3
/ GUTF-8 Level 1
/ HUTF-8 Level 2
/ IUTF-8 Level 3
/ JUTF-16 Level 1
/ KUTF-16 Level 2
/ LUTF-16 Level 3
Set私用符号化方式
0DECTCS
4DECSCCS
8DECHPPCL
! 0_TEKSCTEK
! 1_TEKSCANS
! 2_TEKSCEDT
! 3_TEKSCV52

CMD: ISO 2022 符号化方式の終端

文献 (reference)

標準規格 (standards)

端末の実装 (terminals)

termcap/terminfo

色々な端末の差異を吸収する為に作られたデータベース・ライブラリ。ncurses もこれを利用する。

特定の TERM に対する terminfo のエスケープシーケンスの定義などは、

infocmp cygwin

等として見る事ができる。

古: キーシーケンス

ターミナルからプログラムへ送られるデータ

他の操作キー

キー 普通 vt100 vt52?/rxvt xterm
Home \e[1~\e[2~\e[7~\e[H
Insert \e[2~\e[1~\e[2~\e[2~
Delete \e[3~\e[4~\e[3~\e[3~
End \e[4~\e[5~\e[8~\e[F
PageUp/Prior \e[5~\e[3~\e[5~\e[5~
PageDown/Next\e[6~\e[6~\e[6~\e[6~
Find \e[1~
Select \e[4~\e[4
Execute \e[3~

Function Key 修飾可能。

テンキー (Keypad)

テンキーのキー入力は、モードによって送信されるシーケンスが異なる。

キーNormalApp (PC)App (VT220/rxvt)App (VT52)
KP Space  \eO \eO \e? 
KP Tab \t \eOI \eOI \e?I
KP Enter \r \eOM \eOM \e?M
KP * * \eOj \eOj \e?j
KP + + \eOk \eOk \e?k
KP , , \eOl \eOl \e?l
KP - - \eOm \eOm \e?m
KP ./Del . \e[3~ \eOn \e?n
KP / / \eOo \eOo \e?o
KP 0/Ins 0 \e[2~ \eOp \e?p
KP 1/End 1 \eOF \eOq \e?q
KP 2/Down 2 \e[B \eOr \e?r
KP 3/PgDn 3 \e[6~ \eOs \e?s
KP 4/Left 4 \e[D \eOt \e?t
KP 5/Begin5 \e[E \eOu \e?u
KP 6/Right6 \e[C \eOv \e?v
KP 7/Home 7 \eOH \eOw \e?w
KP 8/Up 8 \e[A \eOx \e?x
KP 9/PgUp 9 \e[5~ \eOy \e?y
KP = = \eOX \eOX \e?X

但し、テンキーの Function キーは Normal/Application で共通である。(然し、環境によって異なる)

キーPC/VT220/rxvtVT52
KP F1 \eOP \eP
KP F2 \eOQ \eQ
KP F3 \eOR \eR
KP F4 \eOS \eS

その他

xterm で定義されているその他の修飾されたキーボード入力

keyC-C-M- (1)C-M- (2) S-S-C-S-C-M- (1)S-C-M- (2)
\t \e[27;5;9~ \e[27;13;9~ \e[27;7;9~ \e[27;2;9~ \e[27;6;9~----
\r \e[27;5;13~\e[27;13;13~\e[27;7;13~ \e[27;2;13~\e[27;6;13~----
, \e[27;5;44~\e[27;13;44~\e[27;7;44~ < \e[27;6;60~\e[27;14;60~\e[27;8;60~
- \e[27;5;45~\e[27;13;45~\e[27;7;45~ = \e[27;5;61~\e[27;13;61~\e[27;7;61~
. \e[27;5;46~\e[27;13;46~\e[27;7;46~ > \e[27;6;62~\e[27;14;62~\e[27;8;62~
/ \e[27;5;47~\e[27;13;47~\e[27;7;47~ ? \e[27;6;63~\e[27;14;63~\e[27;8;63~
0 \e[27;5;48~\e[27;13;48~\e[27;7;48~ --------
1 \e[27;5;49~\e[27;13;49~\e[27;7;49~ ! \e[27;6;33~\e[27;14;33~\e[27;8;33~
2 -- \e[27;13;50~\e[27;7;50~ " \e[27;6;34~\e[27;14;34~\e[27;8;34~
3 -- \e[27;13;51~\e[27;7;51~ # \e[27;6;35~\e[27;14;35~\e[27;8;35~
4 -- \e[27;13;52~\e[27;7;52~ $ \e[27;6;36~\e[27;14;36~\e[27;8;36~
5 -- \e[27;13;53~\e[27;7;53~ % \e[27;6;37~\e[27;14;37~\e[27;8;37~
6 -- \e[27;13;54~\e[27;7;54~ & \e[27;6;38~\e[27;14;38~\e[27;8;38~
7 -- \e[27;13;55~\e[27;7;55~ ' \e[27;5;39~\e[27;13;39~\e[27;7;39~
8 -- \e[27;13;56~\e[27;7;56~ ( \e[27;6;40~\e[27;14;40~\e[27;8;40~
9 \e[27;5;57~\e[27;13;57~\e[27;7;57~ ) \e[27;6;41~\e[27;14;41~\e[27;8;41~
: \e[27;6;58~\e[27;14;58~\e[27;8;58~ * \e[27;6;42~\e[27;14;42~\e[27;8;42~
; \e[27;5;59~\e[27;13;59~\e[27;7;59~ + \e[27;6;43~\e[27;14;43~\e[27;8;43~
\\ \e[27;5;92~\e[27;13;92~\e[27;7;92~ _ ------

rosaterm の現状

S- で文字が変わるキー
KeykC-kS-kC-S-k
: : \e[58;5^ * \e[42;5^
; ; \e[59;5^ + \e[43;5^
, , \e[44;5^ <\e[60;5^
- - \e[45;5^ = \e[61;5^
. . \e[46;5^ >\e[62;5^
/ / \e[47;5^ ? \e[63;5^
@ @ \C-@ `\e[96;5^
0 0 \e[0;5^-- --
1 1 \e[1;5^!\e[33;5^
2 2 \e[2;5^"\e[34;5^
3 3 \e[3;5^#\e[35;5^
4 4 \e[4;5^$\e[36;5^
5 5 \e[5;5^%\e[37;5^
6 6 \e[6;5^&\e[38;5^
7 7 \e[7;5^'\e[39;5^
8 8 \e[8;5^(\e[40;5^
9 9 \e[9;5^)\e[41;5^
A-Za \C-a A\e[97;6^
[ [ \C-[ {\e[123;5^
\\1\\\C-\\ |\e[124;5^
\\2\\\C-\\ _\C-_
] ] \C-] }\e[125;5^
^ ^ \C-^ ~\e[126;5^
特別なキー
KeykC-kS-kC-S-k
backspace\C-? \C-_ \e[8;2^ \e[8;6^
return \C-m\e[13;5^\e[13;2^\e[13;6^
tab \C-i\e[9;5^ \e[9;2^ \e[9;6^
space ' ' \C-@ \e[32;2^\e[32;6^
escape \C-[(win) \e[27;2^(win)

他に Function Key がある。これらの修飾は、既に述べた通りで他のキー入力との重複もない。 但し、Windows によって F1-F12 の shift は F11-22 として解釈される。

KeyNormalApplication
up \e[A\eOA
down \e[B\eOB
right \e[C\eOC
left \e[D\eOD
home \e[1~
insert \e[2~
delete \e[3~
end \e[4~
pageup \e[5~
pagedown\e[6~
F1-F5 \e[11~
F6-F10 \e[17~
F11-F14 \e[23~
F15-F16 \e[28~
F17-F20 \e[31~
F21-F24 \e[23$

-- ≪ ≫ -- akinomyoga/contra :: Control functions
作成 2010-11-08 更新 2020-06-21
© 2010-2016, K. Murase myoga.murase@gmail.com