ANSI/VT100 Terminal Control Escape Sequences

來源:互聯網
上載者:User

  你知道嗎,用 printf 列印一些特殊字元序列可以實現對終端的控制哎~(如終端背景色,前景色彩,清屏,狀態設定……),由於資料不是太多,稍微整理了一下!(試了下,在win 下不起作用!) 原址: http://www.termsys.demon.co.uk/vtansi.htm

一、前言

Many computer terminals and terminal emulators support colour and cursor control through a system of escape sequences. One such standard is commonly referred to as ANSI Colour. Several terminal specifications are based on the ANSI colour standard, including VT100.

The following is a partial listing of the VT100 control set.

<ESC> represents the ASCII "escape" character, 0x1B, \033. Bracketed tags represent modifiable decimal parameters; eg. {ROW} would be replaced by a row number.

 

二、設定選項目錄 

[ Status | Setup | Fonts | Cursor | Scrolling | Tabs | Erasing | Printing | Keyboard | Colours ]

1.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(我的電腦為 62;9;c).

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.

2.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.

3.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.

4.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.

5.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.

6.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.

7.Erasing Text

Erase End of Line <ESC>[K
Erases from the current cursor position to the end of the current line.

Erase Start of Line <ESC>[1K
Erases from the current cursor position to the start of the current line.

Erase Line <ESC>[2K
Erases the entire current line.

Erase Down <ESC>[J
Erases the screen from the current line down to the bottom of the screen.

Erase Up <ESC>[1J
Erases the screen from the current line up to the top of the screen.

Erase Screen <ESC>[2J
Erases the screen with the background colour and moves the cursor to home.

8.Printing

Some terminals support local printing:
Print Screen <ESC>[i
Print the current screen.

Print Line <ESC>[1i
Print the current line.

Stop Print Log <ESC>[4i
Disable log.

Start Print Log <ESC>[5i
Start log; all received text is echoed to a printer.

9.Define Key

Set Key Definition <ESC>[{key};"{string}"p
Associates a string of text to a keyboard key. {key} indicates the key by its ASCII value in decimal.

10.Set Display Attributes

Set Attribute Mode <ESC>[{attr1};...;{attrn}m
Sets multiple display attribute settings. The following lists standard attributes:
0 Reset all attributes  關閉所有屬性
1 Bright 
2 Dim
4 Underscore  底線
5 Blink           閃爍
7 Reverse       反顯
8 Hidden        消隱

Foreground Colours
30 Black
31 Red
32 Green
33 Yellow
34 Blue
35 Magenta     紫
36 Cyan          深綠
37 White

Background Colours(顏色對應前景色彩一樣)
40 Black
41 Red
42 Green
43 Yellow
44 Blue
45 Magenta
46 Cyan
47 White

(註:有些字元序列貌似不是太通用,支援不太好!)

 

三、實戰

1.清屏

printf("\033[1H\033[2J");      #操作游標實現

2.設定前景及背景色

printf("\033[43;31mhello world\033[0m");

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.