Вы находитесь на странице: 1из 40

ANSI escape code

"ANSI code" redirects here. For other uses, see ANSI (disambiguation).
In computing, ANSI escape codes (or escape sequences) are a method using in-b
and signaling to control the
formatting, color, and other output options on video text terminals. To encod
e this formatting information,
certain sequences of bytes are embedded into the text, which the terminal loo
ks for and interprets as
commands, not as character codes.
ANSI codes were introduced in the 1970s and became widespread in the minicomp
uter/mainframe market by the
early 1980s. They were used by the nascent bulletin board system market to of
fer improved displays compared
to earlier systems lacking cursor movement, leading to even more widespread u
se.
Although hardware text terminals have become increasingly rare in the 21st ce
ntury, the relevance of the ANSI
standard persists because most terminal emulators interpret at least some of
the ANSI escape sequences in the
output text. One notable exception is the win32 console component of Microsof
t Windows.
Contents
* 1 History
* 2 Support
* 2.1 Windows and DOS
* 3 Sequence elements
* 4 Non-CSI codes
* 5 CSI codes
* 6 Colors
* 7 Examples
* 7.1 Example of use in shell scripting
* 8 Invalid and ambiguous sequences in use
* 9 See also
* 10 Notes
* 11 External links
History[edit]
Almost all manufacturers of video terminals added vendor-specific escape sequ
ences to perform operations such
as placing the cursor at arbitrary positions on the screen. One example is th
e VT52 terminal, which allowed
the cursor to be placed at an x,y location on the screen by sending the ESC c
haracter, a y character, and
then two characters representing with numerical values equal to the x,y locat
ion plus 32 (thus starting at
the ASCII space character and avoiding the control characters).
As these sequences were different for different platforms, elaborate librarie
s such as termcap had to be
created so programs could use the same API to work with any terminal. Most of
these systems required sending
numbers (such as row and column) as the binary values of the characters; for
some programming languages, and

for systems that did not use ASCII internally, it was often difficult or impo
ssible to turn a number into the
correct character.
The ANSI standard attempted to address these problems by making a command set
that all terminals would use
and requiring all numeric information to be transmitted as ASCII numbers. The
first standard in the series
was ECMA-48, adopted in 1976. It was a continuation of a series of character
coding standards, the first one
being ECMA-6 from 1961, a 7-bit standard from which ASCII originates. The nam
e "ANSI escape sequence" dates
from 1981 when ANSI adopted ECMA-48 as their standard, ANSI X3.64 (and later,
in 1997, withdrew it).[1]
The first popular video terminal to support these sequences was the Digital V
T100, introduced in 1978.[2]
This model was very successful in the market, which sparked a variety of VT10
0 clones, among the earliest and
most popular of which was the much more affordable Zenith Z-19 in 1979.[3] Th
e popularity of these gradually
led to more and more software (especially bulletin board systems) assuming th
e escape sequences worked,
leading to almost all new terminals and emulator programs supporting them.
ECMA-48 has been updated several times and is currently at its 5th edition, f
rom 1991. It is also adopted by
ISO and IEC as standard ISO/IEC 6429.
Support[edit]
The widespread use of ANSI by bulletin boards and online services led to almo
st universal platform support by
the mid 1980s. In most cases this took the form of a terminal emulator (such
as xterm on Unix or the OS X
Terminal or ZTerm on MacOS and many communication programs for the IBM PC), a
lthough there was increasing
support in the standard text output of many operating systems.
Unix and the AmigaOS all included some ANSI support in the OS, which led to w
idespread use of ANSI by
programs running on those platforms. Unix-like operating systems could produc
e ANSI codes through libraries
such as termcap and curses used by many pieces of software to update the disp
lay. These libraries are
supposed to support non-ANSI terminals as well, but this is so rarely tested
nowadays that they are unlikely
to work.[citation needed] Many games and shell scripts (such as colored promp
ts) directly write the ANSI
sequences and thus cannot be used on a terminal that does not interpret them.
AmigaOS not only interprets ANSI code sequences for text output to the screen
, the AmigaOS printer driver
also interprets them (with extensions proprietary to AmigaOS) and translates
them into the codes required for
the particular printer that is actually attached.[4]
In spite of its popularity, ANSI codes were not universally supported. Suppor
t was not built-in on the
original "classic" Mac OS, while the Atari ST used the command system adapted

from the VT52 with some


expansions for color support.[5]
Windows and DOS[edit]
MS-DOS 1.x did not support the ANSI or any other escape sequences. Only a few
control characters (BEL, CR,
LF, BS) were interpreted by the underlying BIOS, making it almost[6] impossib
le to do any kind of full-screen
application. Any display effects had to be done with BIOS calls, which were n
otoriously slow, or by directly
manipulating the IBM PC hardware.
DOS 2.0 introduced the ability to add a device driver for the ANSI escape seq
uences - the de facto standard
being ANSI.SYS, but others like ANSI.COM,[7] NANSI.SYS[8] and ANSIPLUS.EXE ar
e used as well (these are
considerably faster as they bypass the BIOS). Slowness and the fact that it w
as not installed by default made
software rarely take advantage of it; instead, applications continued to dire
ctly manipulate the hardware to
get the text display needed.[citation needed] ANSI.SYS and similar drivers co
ntinued to work in Windows 9x up
to Windows Me, and in NT-derived systems for 16-bit legacy programs executing
under the NTVDM.
The Win32 console does not support ANSI escape sequences at all. Some replace
ments for the console window
such as JP Software's TCC (formerly 4NT), Michael J. Mefford's ANSI.COM, and
Jason Hood's ANSICON[9] do
interpret ANSI escape sequences printed by programs.
Some software internally interprets ANSI escape sequences in text being print
ed and translates them to calls
to manipulate the color and cursor position in the command output window,[10]
to make it easier to port
software using ANSI to Windows.
Sequence elements[edit]
Escape sequences start with the character ESC (ASCII decimal 27/hex 0x1B/octa
l 033). For two character
sequences, the second character is in the range ASCII 64-95 (@ to _).
However, most of the sequences are more than two characters, and start with t
he characters ESC and [ (left
bracket). This sequence is called CSI for Control Sequence Introducer (or Con
trol Sequence Initiator). The
final character of these sequences is in the range ASCII 64-126 (@ to ~).
There is a single-character CSI (155/0x9B /0233) as well. The ESC[ two-charac
ter sequence is more often used
than the single-character alternative (for details see C0 and C1 control code
s).
Only the two-character sequence is recognized by devices that support just AS
CII (7-bit bytes) or devices
that support 8-bit bytes, but use the 0x80-0x9F control character range for o
ther purposes. On terminals that
use UTF-8 encoding, both forms take 2 bytes (CSI in UTF-8 is 0xC2, 0x9B)[disc

uss] but the ESC[ sequence is


clearer.
Though some encodings use multiple bytes per character, the following discuss
ion is restricted to ASCII
characters, and thus assumes a single byte for each character.
Non-CSI codes[edit]
Note: other C0 codes besides ESC - commonly BEL, BS, CR, LF, FF, TAB, VT, SO,
and SI - may produce similar or
identical effects to some control sequences when output.
ESC N = SS2
ESC O = SS3
Select a single character from one of the alternate character sets.
ESC ^ = PM
ESC _ = APC
These each take a single string of text, terminated by ST (ESC \ ). T
hey are ignored by xterm.
ESC P = DCS
Device control string,
ESC ] = OSC
Operating system command - these are similar to CSI, but not limited
to integer arguments. Because
they are frequently used,[citation needed] in many cases BEL is an ac
ceptable alternative to ST.
E.g., in xterm, the window title can be set by: "OSC0;this is the win
dow titleBEL"
Note: pressing special keys on the keyboard, as well as outputting many xterm
CSI, DCS, or OSC sequences,
often produces a CSI, DCS, or OSC sequence.
CSI codes[edit]
The general structure of most ANSI escape sequences
acter(s?)] n1 ; n2... [trailing
intermediate character(s?)] letter. The final byte,
characters and trailing
intermediate characters, specifies the command. The
meters. The default value used
for omitted parameters varies with the command, but
iling parameters are omitted,
the trailing semicolons may also be omitted.

is CSI [private mode char


modified by private mode
numbers are optional para
is usually 1 or 0. If tra

The final byte is technically any character in the range 64-126 (hex 0x40-0x7
E, ASCII @ to ~), and may be
modified with leading intermediate bytes in the range 32 to 47 (hex 0x20-0x2F
, ASCII space to /).
The colon (58, hex 0x3A) is the only character not a part of the general sequ
ence. It was left for future
standardization, so any sequence containing it should be ignored.

Although multiple private mode characters or trailing intermediates are permi


tted, there are no such known
usages.[citation needed]
If there are any leading private mode characters, the main body of the sequen
ce could theoretically contain
any order of characters in the range 48-63 (hex 0x30-0x3F, ASCII 0 to ?) inst
ead of a well-formed
semicolon-separated list of numbers,[citation needed] but all known terminals
are nice and just use the
non-digit characters in this range as flags.[citation needed] Sequences are a
lso private if the final byte is
in the range 112-126 (hex 0x70-0x7E, ASCII p-~).
Examples of private escape codes include the DECTCEM (DEC text cursor enable
mode) shown below. It was first
introduced for the VT-300 series of video terminals.
The behavior of the terminal is undefined in the case where a CSI sequence co
ntains any character outside of
the range 32 to 126 (hex 0x20-0x7E, ASCII space-~).[dubious - discuss] These
illegal characters are either C0
control characters (the range 0-31, hex 0x00-0x1F), character 127 (hex 0x7F,
ASCII DEL), or high-ASCII
characters (the range 128-255, hex 0x80-0xFF).
Possibilities for handling illegal characters in a CSI sequence include:
1. Assuming the end of the CSI sequence, ignoring it and treating further cha
racters as data;[citation
needed]
2. Ignoring this sequence including all future characters through the next ch
aracter that would normally end
a CSI sequence (anything in the range 64-126 (hex 0x40-0x7E, ASCII@-~));[cita
tion needed] or
3. Processing any control code as the terminal normally would outside of a CS
I sequence before continuing to
parse the rest of the sequence.[citation needed]
Some ANSI escape sequences (not a complete list
)
Code

Name

CSI n A
CUU - Cursor Up
ells in the given direction. If
CSI n B
CUD - Cursor Down
e of the screen, this has no
CSI n C
CUF - Cursor Forward
CSI n D
CUB - Cursor Back
CSI n E
CNL - Cursor Next Line
line n (default 1) lines down.

Effect
Moves the cursor n (default 1) c
the cursor is already at the edg
effect.
Moves cursor to beginning of the
(not ANSI.SYS)

CSI n F
CPL - Cursor Previous Line
line n (default 1) lines up.

Moves cursor to beginning of the


(not ANSI.SYS)

CSI n G
ot ANSI.SYS)

CHA - Cursor Horizontal Absolute Moves the cursor to column n. (n


Moves the cursor to row n, colum

n m. The values are 1-based, and


CSI n ; m H CUP - Cursor Position
f omitted. A sequence such as

default to 1 (top left corner) i


CSI ;5H is a synonym for CSI 1;5

H as well as CSI 17;H is the


same as CSI 17H and CSI 17;1H
Clears part of the screen. If n
is 0 (or missing), clear from
CSI n J
ED - Erase Display
1, clear from cursor to

cursor to end of screen. If n is


beginning of the screen. If n is

2, clear entire screen (and


moves cursor to upper left on DO
S ANSI.SYS).
Erases part of the line. If n is
zero (or missing), clear from
CSI n K
EL - Erase in Line
f n is one, clear from cursor to

cursor to the end of the line. I


beginning of the line. If n is t

wo, clear entire line. Cursor


position does not change.
CSI n S
SU - Scroll Up
lt 1) lines. New lines are added

Scroll whole page up by n (defau


at the bottom. (not ANSI.SYS)

CSI n T
SD - Scroll Down
ault 1) lines. New lines are

Scroll whole page down by n (def


added at the top. (not ANSI.SYS)

CSI n ; m f HVP - Horizontal and Vertical


n m. Both default to 1 if
Position

Moves the cursor to row n, colum


omitted. Same as CUP
Sets SGR parameters, including t

ext color. After CSI can be zero


CSI n m
SGR - Select Graphic Rendition
h ;. With no parameters, CSI m

or more parameters separated wit


is treated as CSI 0 m (reset / n

ormal), which is typical of most


of the ANSI escape sequences.
CSI 5i
AUX Port On
or local serial printer
CSI 4i
AUX Port Off
for local serial printer

Enable aux serial port usually f


Disable aux serial port usually
Reports the cursor position (CPR

) to the application as (as


CSI 6 n
DSR - Device Status Report
C[n;mR, where n is the row and m

though typed at the keyboard) ES


is the column.)

CSI s

SCP - Save Cursor Position

Saves the cursor position.

CSI u

RCP - Restore Cursor Position

Restores the cursor position.

CSI ?25l
DECTCEM
iling character is lowercase L.)
CSI ?25h
DECTCEM

Hides the cursor. (Note: the tra


Shows the cursor.
SGR (Select Graphic Rendition) parameters
Note

Code

Effect

Reset / Normal

all attributes off

1
2

Bold or increased intensity


Faint (decreased intensity)

Not widely supported.

3
Italic: on
imes treated as inverse.
4
Underline: Single
5
Blink: Slow

Not widely supported. Somet

6
Blink: Rapid
inute; not widely supported
7
Image: Negative
reground and background (reverse

MS-DOS ANSI.SYS; 150+ per m

less than 150 per minute

inverse or reverse; swap fo


video)

Conceal

9
Crossed-out
ked for deletion. Not widely

Not widely supported.


Characters legible, but mar
supported.

10
Primary(default) font
11-19 n-th alternate font
ont (14 being the fourth

Select the n-th alternate f


alternate font, up to 19 be

ing the 9th alternate font).


20
Fraktur

hardly ever supported

21
Bold: off or Underline: Double
ed; double underline hardly ever

Bold off not widely support


supported.

22
23
24
ined
25
26
27
28

Normal color or intensity

Neither bold nor faint

Not italic, not Fraktur


Underline: None

Not singly or doubly underl

Blink: off
Reserved
Image: Positive
Reveal

conceal off

29
Not crossed out
30-37 Set text color (foreground)
color table below
Reserved for extended set foreground
ments are 5;x where x is color
38
color
here r,g,b are red, green and

30 + x, where x is from the


typical supported next argu
index (0..255) or 2;r;g;b w
blue color channels (out of

255)

39
Default text color (foreground)
ording to standard)
40-47 Set background color
color table below
Reserved for extended set background
ments are 5;x where x is color
48
color
here r,g,b are red, green and

implementation defined (acc


40 + x, where x is from the
typical supported next argu
index (0..255) or 2;r;g;b w
blue color channels (out of

255)
49
ording to
50
51
52
53
54
55
56-59
60

Default background color


standard)
Reserved
Framed
Encircled
Overlined
Not framed or encircled
Not overlined
Reserved
ideogram underline or right side line

implementation defined (acc

hardly ever supported

61

ideogram double underline or double line hardly ever supported

62

on the right side


ideogram overline or left side line

hardly ever supported

63

ideogram double overline or double line

hardly ever supported

64

on the left side


ideogram stress marking

hardly ever supported

65
ideogram attributes off
hardly ever supported, rese
t the effects of all of 60-64
90-97 Set foreground text color, high intensity aixterm (not in standard)
100-107 Set background color, high intensity

aixterm (not in standard)

Colors[edit]
Text colors (and SGR parameters in general) are manipulated using CSI n1 [;n2
[; ...]] m sequences, where
each n1, n2, ... is an SGR parameter as shown above. Thus, for instance, you
use codes 30+i to specify
foreground color, 40+i to specify background color, where i is the number in
the desired color's column
header in the table below. The following examples can be used with the printf
utility, where \x1b[ implements
the CSI: To switch the foreground color to black, use \x1b[30m; to switch to
red, use \x1b[31m; utilizing the
"bold" parameter, gray would be \x1b[30;1m; to get bold red, use \x1b[31;1m.
To reset colors to their
defaults, use \x1b[39;49m (or reset all attributes with \x1b[0m).
Color table[11]
Intensity 0
1 2
3
4
5
6
7
Normal
Black Red Green Yellow[12] Blue Magenta Cyan White
Bright
Black Red Green Yellow
Blue Magenta Cyan White
There are two other color standards CSS/HTML standard colors and X Window col

ors which standardize both the


color names and associated RGB color values, but the escape sequence standard
only specifies the color names,
not RGB values. The chart below shows default RGB assignments for some common
terminal programs, together
with the CSS and the X Window System colors for these color names.[citation n
eeded]
Color name Standard VGA Windows XP
CSS/HTML X
colors
CMD
Black
0, 0, 0
0, 0, 0
0, 0, 0 0, 0, 0 0, 0, 0 0, 0,
mIRC

Terminal.app PuTTY

xterm

0
Red
170, 0, 0
127, 0, 205, 0, 255, 0, 0 255,

128, 0, 0

0, 0, 0

0, 0, 0

194, 54, 33

187, 0,
0

0, 0
Green
0, 170, 0
0, 147, 0, 205, 0, 255, 0 0,

0, 128, 0

37, 188, 36

0, 187,
0

252,

205,

128, 0
Brown/yellow 170, 85, 0
255, 255, 255,

128, 128, 0

173, 173, 39 187,


187, 0

127, 0 205, 0 0
255, 0
Normal
Blue
0, 0, 170
0, 0, 0, 0, 0, 0, 255 0, 0,

0, 0, 128

73, 46, 225

0, 0,
187

127

238

255

Magenta
156, 0, 205, 0, 255, 0,

170, 0, 170
255,

156

0, 255

128, 0, 128

211, 56, 211 187, 0,


187

205

255

0, 187,
0, 147, 0, 205, 0, 255,
Cyan
147
205
255

0,
0, 170, 170
255,

0, 128, 128

51, 187, 200 187

255
210,

229,

210,

229,

210

229

127,

127,

127,

127,

127

127

187,
255, 255, 255,
Gray
170, 170, 170 192, 192, 192 203, 204, 205 187, 187
255
255,
255
85, 85,
Darkgray

85, 85, 85

128, 128, 128 129, 131, 131 85

Red

255, 85, 85

255, 0, 0

252,57,31

255, 85,

255, 0, 255, 0,
85
0

0
85, 255,

0, 252, 0, 255, 144, 238, 144,


Green
85, 255, 85

0, 255, 0

49, 231, 34

85

144

238,
144
255,

255,

255,

255, 255, 225,


Yellow
255, 255, 85 255, 255, 0
255, 0 255, 0 224
255,
Bright/light
224

234, 236, 35 255, 85

85, 85,
0, 0,
252

92, 92, 173, 216, 173,


Blue
85, 85, 255
255
230
216,

0, 0, 255

88, 51, 255

255

230
Magenta

255, 85, 255 255, 0, 255

249, 53, 248 255, 85,

255, 0, 255, 0,
255
255

255
85, 255,

0, 255, 0, 255, 224, 255, 224,


Cyan
85, 255, 255 0, 255, 255
255
255
255
255,

20, 240, 240 255

255
255,
255,

255,

255,

255,

255

255

White

255, 255, 255 255, 255, 255 233, 235, 235 255, 255

The VGA column denotes the typical colors that are used when booting PCs and
leaving them in their classical
80 *25 text mode. The colors are different in the EGA/VGA graphic modes.
In July 2004, the blue colors of xterm changed,[13] RGB (0,0,205) -> (0,0,238
) for normal and (0,0,255) ->
(92,92,255) for bright. As of 2010, old xterm versions still linger on many c
omputers though.[citation
needed]
Xterm,[14] GNOME Terminal[citation needed] and KDE's Konsole[15] support ISO8613-3 24-bit foreground and
background color setting[better source needed] Quoting one of the text-files
in its
source-tree:[16][better source needed]
ESC[ ... 38;2;<r>;<g>;<b> ... m Select RGB foreground color
ESC[ ... 48;2;<r>;<g>;<b> ... m Select RGB background color
In 256-color mode (ESC[38;5;<fgcode>m and ESC[48;5;<bgcode>m), the color-code
s are the following:[citation
needed]
0x00-0x07:
0x08-0x0F:
0x10-0xE7:
b =< 5)
0xE8-0xFF:

standard colors (as in ESC [ 30-37 m)


high intensity colors (as in ESC [ 90-97 m)
6 * 6 * 6 = 216 colors: 16 + 36 * r + 6 * g + b (0 =< r, g,
grayscale from black to white in 24 steps

Web-safe colour range of the 256-color mode


0% G
20% G
40% G
60% G
80% G
100% G
0% B 20% 40% 60% 80% 100% 0% B 20% 40% 60% 80% 100% 0% B 20% 40%
60% 80% 100% 0% B 20% 40% 60% 80% 100% 0% B 20% 40% 60% 80% 100%
0% B 20% 40% 60% 80% 100%
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
0% R 16 17 18 19 20 21
22 23 24 25 26 27
28 29 30
31 32 33
34 35 36 37 38 39
40 41 42 43 44 45
46 47 48 49 50 51
#000 #003 #006 #009 #00c #00f #030 #033 #036 #039 #03c #03f #060 #063 #06
6 #069 #06c #06f #090 #093 #096 #099 #09c #09f #0c0 #0c3 #0c6 #0c9 #0cc #0cf
#0f0 #0f3 #0f6 #0f9 #0fc #0ff
20% 52 53 54 55 56 57
58 59 60 61 62 63
64 65 66
67 68 69
70 71 72 73 74 75
76 77 78 79 80 81
82 83 84 85 86 87
R
#300 #303 #306 #309 #30c #30f #330 #333 #336 #339 #33c #33f #360 #363 #36
6 #369 #36c #36f #390 #393 #396 #399 #39c #39f #3c0 #3c3 #3c6 #3c9 #3cc #3cf
#3f0 #3f3 #3f6 #3f9 #3fc #3ff
40% 88 89 90 91 92 93
94 95 96 97 98 99
100 101 102
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
118 119 120 121 122 123
R
#600 #603 #606 #609 #60c #60f #630 #633 #636 #639 #63c #63f #660 #663 #66
6 #669 #66c #66f #690 #693 #696 #699 #69c #69f #6c0 #6c3 #6c6 #6c9 #6cc #6cf
#6f0 #6f3 #6f6 #6f9 #6fc #6ff
60% 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
154 155 156 157 158 159
R
#900 #903 #906 #909 #90c #90f #930 #933 #936 #939 #93c #93f #960 #963 #96
6 #969 #96c #96f #990 #993 #996 #999 #99c #99f #9c0 #9c3 #9c6 #9c9 #9cc #9cf
#9f0 #9f3 #9f6 #9f9 #9fc #9ff
80% 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174
175 176 177 178 179 180 181 182 183 184 185 186 187 188 189
190 191 192 193 194 195
R
#c00 #c03 #c06 #c09 #c0c #c0f #c30 #c33 #c36 #c39 #c3c #c3f #c60 #c63 #c6
6 #c69 #c6c #c6f #c90 #c93 #c96 #c99 #c9c #c9f #cc0 #cc3 #cc6 #cc9 #ccc #ccf
#cf0 #cf3 #cf6 #cf9 #cfc #cff
100% 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210
211 212 213 214 215 216 217 218 219 220 221 222 223 224 225
226 227 228 229 230 231
R
#f00 #f03 #f06 #f09 #f0c #f0f #f30 #f33 #f36 #f39 #f3c #f3f #f60 #f63 #f6
6 #f69 #f6c #f6f #f90 #f93 #f96 #f99 #f9c #f9f #fc0 #fc3 #fc6 #fc9 #fcc #fcf
#ff0 #ff3 #ff6 #ff9 #ffc #fff
Xterm allows also to set the default foreground and background colors using[1
4]
ESC]10;<foreground>BEL
ESC]11;<background>BEL
where <foreground> and <background> are X color specifications, and BEL is th
e ASCII BEL character (code 7).
The closing bracket instead of an opening bracket reveals that it belongs to
the operating system control
commands.

Examples[edit]
CSI 2 J - This clears the screen and, on some devices, locates the cursor to
the y,x position 1,1 (upper left
corner).
CSI 32 m - This makes text green. On MS-DOS, normally the green would be dark
, dull green, so you may wish to
enable Bold with the sequence CSI 1 m which would make it bright green, or co
mbined as CSI 32 ; 1 m. MS-DOS
ANSI.SYS uses the Bold state to make the character Bright; also the Blink sta
te can be set (via INT 10, AX
1003h, BL 00h) to render the Background in the Bright mode. MS-DOS ANSI.SYS d
oes not support SGR codes 90-97
and 100-107 directly.
CSI 0 ; 6 8 ; "DIR" ; 13 p - This reassigns the key F10 to send to the keyboa
rd buffer the string "DIR" and
ENTER, which in the DOS command line would display the contents of the curren
t directory. (MS-DOS ANSI.SYS
only) This was sometimes used for ANSI bombs. This is a private-use code (as
indicated by the letter p),
using a non-standard extension to include a string-valued parameter. Followin
g the letter of the standard
would consider the sequence to end at the letter D.
CSI s - This saves the cursor position. Using the sequence CSI u will restore
it to the position. Say the
current cursor position is 7(y) and 10(x). The sequence CSI s will save those
two numbers. Now you can move
to a different cursor position, such as 20(y) and 3(x), using the sequence CS
I 20 ; 3 H or CSI 20 ; 3 f. Now
if you use the sequence CSI u the cursor position will return to 7(y) and 10(
x). Some terminals require the
DEC sequences ESC 7 / ESC 8 instead which is more widely supported.
Example of use in shell scripting[edit]
ANSI escape codes are often used in UNIX and UNIX-like terminals to provide s
yntax highlighting. For example,
on compatible terminals, the following list command color-codes file and dire
ctory names by type.
ls --color
Users can employ escape codes in their scripts by including them as part of s
tandard output or standard
error. For example, the following sed command embellishes the output of the m
ake command by displaying lines
containing words starting with "WARN" in reverse video and words starting wit
h "ERR" in bright yellow on a
dark red background (letter case is ignored). The representations of the code
s are highlighted.[17]
make 2>&1 | sed -e 's/.*\bWARN.*/\x1b[7m&\x1b[0m/i' -e 's/.*\bERR.*/\x1b[93;41m
&\x1b[0m/i'
The following shell function flashes the terminal (by alternately sending rev
erse and normal video mode
codes) until the user presses a key.[18]

flasher () { while true; do printf \\e[?5h; sleep 0.1; printf \\e[?5l; read -s
-n1 -t1 && break; done; }
This can be used to alert a programmer when a lengthy command terminates, suc
h as with make ; flasher .[19]
Invalid and ambiguous sequences in use[edit]
* The Linux console uses OSC P n rr gg bb to change the palette, which, if
hard-coded into an application,
may hang other terminals. However, appending ST will be ignored by Linux
and form a proper, ignorable
sequence for other terminals.
* On the Linux console, certain function keys generate sequences of the for
m CSI [ char. The CSI sequence
should terminate on the [.
* Old versions of Terminator generate SS3 1; modifiers char when F1-F4 are
pressed with modifiers. The
faulty behavior was copied from GNOME Terminal.[citation needed]
* xterm replies CSI row ; column R if asked for cursor position and CSI 1 ;
modifiers R if the F3 key is
pressed with modifiers, which collide in the case of row == 1. This can b
e avoided by using the ? private
modifier, which will be reflected in the response.[clarification needed]
* many terminals prepend ESC to any character that is typed with the alt ke
y down. This creates ambiguity
for uppercase letters and symbols @[\]^_, which would form C1 codes.[clar
ification needed]
* Konsole generates SS3 modifiers char when F1-F4 are pressed with modifier
s.[clarification needed]
See also[edit]
*
*
*
*

ANSI art
Control character
Advanced Video Attribute Terminal Assembler and Recreator (AVATAR)
ISO/IEC JTC 1/SC 2

Notes[edit]
1. ^ See this NIST list of withdrawn standards
2. ^ Paul Williams (2006). "Digital's Video Terminals". VT100.net. Retrieved
17 August 2011.
3. ^ Heathkit Company (1979). "Heathkit Catalog 1979". Heathkit Company. Ret
rieved 4 November 2011.
4. ^ "Amiga Printer Command Definitions". Commodore. Retrieved 10 July 2013.
5. ^ "Using C-Kermit", p. 88.
6. ^ The screen display could be replaced by drawing the entire new screen's
contents at the bottom,
scrolling the previous screen up sufficiently to erase all the old text.
The user would see the
scrolling, and the hardware cursor would be left at the very bottom. Some
early batch files achieved
rudimentary "full screen" displays in this way.
7. ^ Michael Mefford (7 February 1989). "ANSI.com: Download It Here". PC Mag
azine. Retrieved 10 August
2011.
8. ^ Dan Kegel, Eric Auer (28 February 1999). "Nansi and NNansi - ANSI Drive

rs for MS-DOS". Dan Kegel's Web


Hostel. Retrieved 10 August 2011.
9. ^ Jason Hood (2005). "Process ANSI escape sequences for Windows console p
rograms". Jason Hood's Home
page. Retrieved 9 May 2013.
10. ^ "colorama 0.2.5 :". Python Package Index. Retrieved 17 August 2013.
11. ^ The names are standard, however the exact shade/hue/value of colors are
not standardized and will
depend on the device used to display them.
12. ^ On terminals based on CGA compatible hardware, such as ANSI.SYS running
on DOS, this normal intensity
foreground color is rendered as Orange. CGA RGBI monitors contained hardw
are to modify the dark yellow
color to an orange/brown color by reducing the green component. See this
ansi art as an example.
13. ^ "Patch #192 - 2004/7/12 - XFree86 4.4.99.9".
14. ^ a b "XTerm Control Sequences". invisible-island.net. 13 January 2014. R
etrieved 13 April 2014.
15. ^ "color-spaces.pl (a copy of 256colors2.pl from xterm dated 11 July 1999
)". KDE. 6 December 2006.
16. ^ "README.moreColors". KDE. 22 April 2010.
17. ^ Colorized shell echo
18. ^ "VT100.net: Digital VT100 User Guide". Retrieved 19 January 2015.
19. ^ "bash - How to get a notification when my commands are done - Ask Diffe
rent". Retrieved 19 January
2015.
External links[edit]
* Standard ECMA-48, Control Functions For Coded Character Sets. (5th editio
n, June 1991), European Computer
Manufacturers Association, Geneva 1991 (also published by ISO and IEC as
standard ISO/IEC 6429)
* vt100.net DEC Documents
* ANSI.SYS -- ansi terminal emulation escape sequences at the Wayback Machi
ne (archived February 6, 2006)
* Xterm / Escape Sequences
* AIXterm / Escape Sequences
* A collection of escape sequences for terminals that are vaguely compliant
with ECMA-48 and friends.
* ANSI Escape Sequences
* v
* t
* e
Character encodings
Category Character sets
* ASCII
* ISO/IEC 646
* ISO/IEC 6937
Early telecommunications

* T.61

* BCD
* Baudot code
* Morse code (Telegraph code)
* Special Telegraphy Codes : Non-Latin, Chinese
, Cyrillic
* -1
* -2
* -3
* -4
* -5
* -6
* -7
ISO/IEC 8859

* -8
* -9
* -10
* -11
* -12
* -13
* -14
* -15
* -16
* ANSEL

Bibliographic use
* ISO 5426 / 5426-2 / 5427 / 5428 / 6438 / 6861
/ 6862 / 10585 / 10586 / 10754
/ 11822
* MARC-8
* ArmSCII
* CNS 11643
* GOST 10859
* GB 18030
* HKSCS
* ISCII

* JIS X 0201
* JIS X 0208
National standards

* JIS X 0212
* JIS X 0213
* KPS 9566
* KS X 1001
* PASCII
* SI 960
* TIS-620
* TSCII
* VISCII
* YUSCII
* CN

EUC

* JP
* KR
* TW
* CN

ISO/IEC 2022

* JP
* KR
* CCCII
* Arabic
* CentralEurRoman
* ChineseSimp / EUC-CN
* ChineseTrad / Big5
* Croatian
* Cyrillic
* Devanagari
* Dingbats
* Farsi
* Greek

MacOS codepages ("scripts")

* Gujarati
* Gurmukhi
* Hebrew
* Icelandic
* Japanese / ShiftJIS
* Korean / EUC-KR
* Roman
* Romanian
* Symbol
* Thai / TIS-620
* Turkish
* Ukrainian
* 111
* 112
* 113
* 151
* 161
* 162
* 163
* 164
* 165
* 301
* 437
* 667
* 668
* 708
* 709
* 710
* 711
* 720

* 737
* 770
* 771
* 772
* 773
* 774
* 775
* 776
* 777
* 778
* 790
* 806
* 808
* 813
* 819
* 848
* 849
* 850
* 851
* 852
* 853
* 854
* 855
* 856
* 857
* 858
* 859
* 860
* 861
* 862

* 863
* 864
* 865
* 866
* 867
* 868
* 869
* 872
* 874
* 876
* 877
* 878
* 881
* 882
* 883
* 884
* 885
* 891
* 895
* 896
* 897
* 898
* 899
* 900
* 901
* 902
* 903
* 904
* 906
* 907

* 909
* 910
* 911
* 912
* 913
* 914
* 915
* 916
* 919
* 920
* 921
* 922
* 923
* 925
* 926
DOS codepages

* 927
* 928
* 932
* 934
* 936
* 938
* 941
* 942
* 943
* 944
* 946
* 947
* 948
* 949
* 950

* 951
* 952
* 953
* 954
* 955
* 956
* 957
* 958
* 959
* 960
* 961
* 962
* 963
* 964
* 965
* 966
* 991
* 1004
* 1006
* 1008
* 1009
* 1010
* 1011
* 1012
* 1013
* 1014
* 1015
* 1016
* 1017
* 1018

* 1019
* 1020
* 1021
* 1023
* 1034
* 1036
* 1040
* 1041
* 1042
* 1043
* 1044
* 1046
* 1086
* 1088
* 1089
* 1090
* 1092
* 1098
* 1111
* 1114
* 1115
* 1116
* 1117
* 1118
* 1119
* 1124
* 1125
* 1126
* 1127
* 1129

* 1131
* 1133
* 1139
* 1161
* 1162
* 1163
* 1167
* 1168
* 1169
* 1174
* 1350
* 1351
* 1361
* 1362
* 1363
* 1373
* Kamenicky
* Mazovia
* MIK
* Iran System
* 874 / TIS-620
* 932 / Shift JIS
* 936 / GBK
* 949 / EUC-KR
* 950 / Big5
* 1250
* 1251
Windows codepages

* 1252
* 1253
* 1254

* 1255
* 1256
* 1257
* 1258
* 54936 / GB18030
* 1
* 2
* 3
* 4
* 5
* 6
* 7
* 8
* 9
* 10
* 11
* 12
* 13
* 14
* 15
* 16
* 17
* 18
* 19
* 20
* 21
* 22
* 23
* 24
* 25

* 26
* 27
* 29
* 30
* 31
* 32
* 33
* 34
* 35
* 36
* 37/1140
* 38
* 39
* 40
* 251
* 252
* 254
* 256
* 257
* 258
* 259
* 260
* 264
* 273/1141
* 274
* 275
* 276
* 277/1142
* 278/1143
* 280/1144

* 281
* 282
* 283
* 284/1145
* 285/1146
* 286
* 287
* 288
* 289
* 290
* 293
* 297/1147
* 298
* 300
* 320
* 321
* 322
* 330
* 351
* 361
* 363
* 382
* 383
* 384
* 385
* 386
* 387
* 388
* 389
* 390

* 391
* 392
* 393
* 394
* 395
* 410
* 420/16804
EBCDIC codepages

* 421
* 423
* 424/12712
* 425
* 435
* 500/1148
* 803
* 829
* 833
* 834
* 835
* 836
* 837
* 838/1160
* 839
* 870/1153
* 871/1149
* 875/9067
* 880
* 881
* 882
* 883
* 884

* 885
* 886
* 887
* 888
* 889
* 890
* 892
* 893
* 905
* 918
* 930/1390
* 931
* 933/1364
* 935/1388
* 937/1371
* 939/1399
* 1001
* 1002
* 1003
* 1005
* 1007
* 1024
* 1025/1154
* 1026/1155
* 1027
* 1028
* 1030
* 1031
* 1032
* 1033

* 1037
* 1047/924
* 1068
* 1069
* 1070
* 1071
* 1073
* 1074
* 1075
* 1076
* 1077
* 1078
* 1079
* 1080
* 1081
* 1082
* 1083
* 1084
* 1085
* 1087
* 1091
* 1097
* 1110
* 1112/1156
* 1113
* 1122/1157
* 1123/1158
* 1130/1164
* 1132
* 1136

* 1137
* 1150
* 1151
* 1152
* 1159
* 1165
* 1278
* 1303
* 1364
* JEF
* KEIS
* ATASCII
* CDC display code
* DEC-MCS
* DEC Radix-50
* ELWRO-Junior
* Fieldata
Platform specific

* GSM 03.38
* HP roman8
* PETSCII
* TI calculator character sets
* WISCII
* ZX80 character set
* ZX Spectrum character set
* UTF-8
* UTF-16/UCS-2
* UTF-32/UCS-4
* UTF-7

Unicode / ISO/IEC 10646

* UTF-1
* UTF-EBCDIC

* GB 18030
* SCSU
* BOCU-1
* APL
* Cork
Miscellaneous codepages

* HZ
* KOI8
* TRON
* control character (C0 C1)
* CCSID
* Character encodings in HTML

Related topics

* charset detection
* Han unification
* ISO 6429/IEC 6429/ANSI X3.64
* mojibake

* v
* t
* e
Standards of Ecma International
* ANSI escape code
Application Interfaces * Common Language Infrastructure
* Office Open XML
* OpenXPS
* Advanced Intelligent Tape
* DDS
* DLT
File Systems (Tape)
* Super DLT
* Holographic Versatile Disc
* Linear Tape-Open (Ultrium-1)
* VXA
* CD-ROM
* CD File System (CDFS)
* FAT
* FAT12
File Systems (Disk)
* FAT16
* FAT16B
* FD
* UDF
* Ultra Density Optical
* Universal Media Disc
Graphics
* Universal 3D
* C++/CLI
Programming Languages
* C#
* Eiffel

* JavaScript (E4X, ECMAScript)


* NFC
* UWB
Other
* TC20 Electromagnetic Compatibility [1]
* TC12 Product safety [2]
List of Ecma standards (1961 - Present)
Radio Link Interfaces

* v
* t
* e
ISO standards by standard number
List of ISO standards / ISO romanizations / IEC standards
* 1
* 2
* 3
* 4
* 5
* 6
* 7
* 9
* 16
* 31
* -0
* -1
* -2
* -3
* -4
* -5
* -6
* -7
* -8
* -9
* -10
* -11
* -12
* -13
* 128
* 216
* 217
* 226
* 228
* 233
* 259
* 269
* 302
* 306
* 428
* 518
* 519
* 639
* -1
* -2
* -3
* -5
* -6
* 646
* 690
* 732
* 764
* 843

*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

1-9999

*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

898
965
1000
1004
1007
1073-1
1413
1538
1745
1989
2014
2015
2022
2047
2108
2145
2146
2240
2281
2709
2711
2788
2852
3029
3103
3166
* -1
* -2
* -3
3297
3307
3602
3864
3901
3977
4031
4157
4217
4909
5218
5428
5775
5776
5800
5964
6166
6344
6346
6385
6425
6429
6438
6523
6709
7001
7002
7098
7185
7200
7498

*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

7736
7810
7811
7812
7813
7816
8000
8178
8217
8571
8583
8601
8632
8652
8691
8807
8820-5
8859
* -1
* -2
* -3
* -4
* -5
* -6
* -7
* -8
* -8-I
* -9
* -10
* -11
* -12
* -13
* -14
* -15
* -16
8879
9000/9001
9075
9126
9293
9241
9362
9407
9506
9529
9564
9594
9660
9897
9945
9984
9985
9995
10006
10116
10118-3
10160
10161
10165
10179

* 10206
* 10218
* 10303
* -11
* -21
* -22
* -28
* -238
* 10383
* 10487
* 10585
* 10589
* 10646
* 10664
* 10746
* 10861
* 10957
* 10962
* 10967
* 11073
* 11170
* 11179
* 11404
* 11544
* 11783
* 11784
* 11785
* 11801
* 11898
* 11940 (-2)
* 11941
* 11941 (TR)
* 11992
* 12006
* 12182
* 12207
* 12234-2
* 13211
* -1
* -2
* 13216
* 13250
* 13399
* 13406-2
* 13407
* 13450
* 13485
* 13490
* 13567
* 13568
* 13584
* 13616
* 14000
* 14031
* 14224
* 14289
* 14396
* 14443
* 14496
* -2

10000-19999

*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

* -3
* -6
* -10
* -11
* -12
* -14
* -17
* -20
14644
* -1
* -2
* -3
* -4
* -5
* -6
* -7
* -8
* -9
14649
14651
14698
* -2
14750
14764
14882
14971
15022
15189
15288
15291
15292
15398
15408
15444
* -3
15445
15438
15504
15511
15686
15693
15706
* -2
15707
15897
15919
15924
15926
15926 WIP
15930
16023
16262
16612-2
16750
16949 (TS)
17024
17025
17203
17369
17799

*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

18000
18004
18014
18245
18629
18916
19005
19011
19092 (-1
-2)
19114
19115
19125
19136
19439
19500
19501
19502
19503
19505
19506
19507
19508
19509
19510
19600
19752
19757
19770
19775-1
19794-5
19831
20000
20022
20121
21000
21047
21500
21827:2002
22000
23270
23271
23360
24517
24613
24617
24707
25178
25964
26000
26300
26324
27000 series
27000
27001:2005
27001:2013
27002
27003
27004
27005

20000+

*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

27006
27007
27729
27799
28000
29110
29148
29199-2
29500
30170
31000
32000
38500
40500
42010
80000
* -1
* -2
* -3
* -4
* -5
* -6
* -7
* -8
* -9
* -10
* -11
* -12
* -13
* -14
* ISO standards
* ISO 639
Category Categories
* ISO 3166
* ISO / IEC standards
* OSI protocols
All articles with prefix "ISO"
Retrieved from "https://en.wikipedia.org/w/index.php?title=ANSI_escape_code&o
ldid=673851268"
Categories:
* Computer standards
* Ecma standards
* ANSI standards
* Text user interface
Hidden categories:
* Use dmy dates from May 2012
* All articles with unsourced statements
* Articles with unsourced statements from July 2014
* Articles with unsourced statements from August 2011
* Articles with unsourced statements from July 2010
* Articles with unsourced statements from November 2010
* All accuracy disputes
* Articles with disputed statements from July 2015
* Articles with unsourced statements from July 2015
* Articles with unsourced statements from October 2010
* Articles with unsourced statements from September 2013
* Articles with unsourced statements from March 2015
* All pages needing factual verification
* Wikipedia articles needing factual verification from September 2013
* Articles with unsourced statements from December 2010

* Wikipedia articles needing clarification from November 2010


Navigation menu
Personal tools
* Create account
* Log in
Namespaces
* Article
* Talk
Variants
Views
* Read
* Edit
* View history
More
Search
_____________________ [ Search ] [ Go ]
Visit the main page
Navigation
*
*
*
*
*
*
*

Main page
Contents
Featured content
Current events
Random article
Donate to Wikipedia
Wikipedia store

Interaction
*
*
*
*
*

Help
About Wikipedia
Community portal
Recent changes
Contact page

Tools
*
*
*
*
*
*
*
*

What links here


Related changes
Upload file
Special pages
Permanent link
Page information
Wikidata item
Cite this page

Print/export

* Create a book
* Download as PDF
* Printable version
Languages
* Catal`a
* Espanol
* Russkij
* Suomi
* Ukrayins'ka
* Yoruba
* Edit links
* This page was last modified on 30 July 2015, at 22:32.
* Text is available under the Creative Commons Attribution-ShareAlike Licen
se; additional terms may apply.
By using this site, you agree to the Terms of Use and Privacy Policy. Wik
ipedia(R) is a registered
trademark of the Wikimedia Foundation, Inc., a non-profit organization.
* Privacy policy
* About Wikipedia
* Disclaimers
* Contact Wikipedia
* Developers
* Mobile view
* Wikimedia Foundation
* Powered by MediaWiki

Вам также может понравиться