ANSI and VT100 Terminal Control Escape Sequences
The terminal control sequences that follow the ESC character are dependent on which terminal the control codes were generated for. Many terminal emulators support color and cursor control through a system of escape sequences. One such standard is commonly referred to as ANSI Color. Several terminal specifications are based on the ANSI color standard, including VT100.
<ESC> represents the ASCII "escape" character, 0x1B. Bracketed tags represent modifiable decimal parameters; eg. {ROW} would be replaced by a row number.
Device Status
The following codes are used for reporting terminal/display settings, and vary depending on the implementation:
Query Device Code <ESC>[c
- Requests a Report Device Code response from the device.
Report Device Code <ESC>[{code}0c
- Generated by the device in response to Query Device Code request.
Query Device Status <ESC>[5n
- Requests a Report Device Status response from the device.
Report Device OK <ESC>[0n
- Generated by the device in response to a Query Device Status request; indicates that device is functioning correctly.
Report Device Failure <ESC>[3n
- Generated by the device in response to a Query Device Status request; indicates that device is functioning improperly.
Query Cursor Position <ESC>[6n
- Requests a Report Cursor Position response from the device.
Report Cursor Position <ESC>[{ROW};{COLUMN}R
- Generated by the device in response to a Query Cursor Position request; reports current cursor position.
Terminal Setup
The h and l codes are used for setting terminal/display mode, and vary depending on the implementation. Line Wrap is one of the few setup codes that tend to be used consistently:
Reset Device <ESC>c
- Reset all terminal settings to default.
Enable Line Wrap <ESC>[7h
- Text wraps to next line if longer than the length of the display area.
Disable Line Wrap <ESC>[7l
- Disables line wrapping.
Fonts
Some terminals support multiple fonts: normal/bold, swiss/italic, etc. There are a variety of special codes for certain terminals; the following are fairly standard:
Font Set G0 <ESC>(
- Set default font.
Font Set G1 <ESC>)
- Set alternate font.
Cursor Control
Cursor Home <ESC>[{ROW};{COLUMN}H
- Sets the cursor position where subsequent text will begin. If no row/column parameters are provided (ie. <ESC>[H), the cursor will move to the home position, at the upper left of the screen.
Cursor Up <ESC>[{COUNT}A
- Moves the cursor up by COUNT rows; the default count is 1.
Cursor Down <ESC>[{COUNT}B
- Moves the cursor down by COUNT rows; the default count is 1.
Cursor Forward <ESC>[{COUNT}C
- Moves the cursor forward by COUNT columns; the default count is 1.
Cursor Backward <ESC>[{COUNT}D
- Moves the cursor backward by COUNT columns; the default count is 1.
Force Cursor Position <ESC>[{ROW};{COLUMN}f
- Identical to Cursor Home.
Save Cursor <ESC>[s
- Save current cursor position.
Unsave Cursor <ESC>[u
- Restores cursor position after a Save Cursor.
Save Cursor & Attrs <ESC>7
- Save current cursor position.
Restore Cursor & Attrs <ESC>8
- Restores cursor position after a Save Cursor.
Scrolling
Scroll Screen <ESC>[r
- Enable scrolling for entire display.
Scroll Screen <ESC>[{start};{end}r
- Enable scrolling from row {start} to row {end}.
Scroll Down <ESC>D
- Scroll display down one line.
Scroll Up <ESC>M
- Scroll display up one line.
Tab Control
Set Tab <ESC>H
- Sets a tab at the current position.
Clear Tab <ESC>[g
- Clears tab at the current position.
Clear All Tabs <ESC>[3g
- Clears all tabs.