A
Terminal Control Code, AKA
terminal escape sequence, AKA
terminal control sequecence, is an in-band sequence of bytes that may be interpreted by a character imaging device such as a terminal.
See Also edit
- Terminal
Reference edit
- ECMA-48: Control Functions for Coded Character Sets:
- ANSI escape code, Wikipedia
- ANSI/VT100 Terminal Control Escape Sequences
- XTerm Control Sequences, by Edward Moy, Stephen Gildea, and Thomas Dickey
- ANSI Standard (X3.64) Control Sequences for Video Terminals and Peripherals in alphabetic order, by mnemonic
Description edit
The most common set of control codes, known as
ANSI escape sequences, and standardized in control set is
Example: ANSI Sequences edit
AM 2014-05-06: The other day someone asked about controlling the output on screen, so that the last line would be rewritten with new results. Here is a simple solution which works with these ANSI escape codes. Unfortunately you only get the proper effect on Linux terminals and other ANSI-enabled terminals. The code is, however, dead simple:
- Move the cursor to the right position (\escape[10;0f)
- Clear everything at this position and below (\escape[J)
- Write the new output
# showcomp.tcl --
# Small program to illustrate the use of ANSI sequences
#
while 1 {
puts -nonewline "\x1b\[10;1f\x1b\[J"
puts "Result: [clock seconds] - [expr {rand()}]"
puts "Computing ..."
after 1000
}
AMG: For single-line displays, e.g. progress meters, I use
\r which rewinds to the start of the line. Then
\x1b[K clears to end of line.
while {1} {
puts -nonewline "\r[clock format [clock seconds]]\x1b\[K"
flush stdout
after 900
}