• 终端字符颜色、样式控制


    void printUsage()
    {
    	printf("\033[43;31mUsage:./cpf server_number\033[33m[ --block_ip --health_log --debug]\033[0m\033[0m\n\n\
    \033[34m--block_ip\033[0m: Enable block ip function, but there will be little performance loss;\n\
    \033[34m--health_log\033[0m: Will record message queue status and socket data stat in /tmp/event2game_health_log_*.log for every one minite;\n\
    \033[34m--debug\033[0m: Will display health log and some socket interactive message on terminal.\n\n\
    ");
    }


    颜色控制格式:

    \033[ + 属性(多个属性;分隔)+ m + 字符串 + \033[0m

    如:

    \033[40;37m黑底白字\033[0m

    可以嵌套。

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


    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.


    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.


    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.


    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
      
  • 相关阅读:
    JavaScript 继承机制设计思想
    JavaScript里的原型(prototype), 原型链,constructor属性,继承
    centos7用yum安装node.js v8.x
    sequelize 字段无法操作
    开发CLI命令行
    微信分组群发图文40152,微信分组群发图文invalid group id hint
    微信分组群发45028,微信分组群发has no masssend quota hint
    微信45028错误,微信has no masssend quota hint错误
    微信上传图文消息素材40007,invalid media_id hint
    Spring文件上传出错:java.lang.ClassCastException: org.apache.catalina.connector.Request
  • 原文地址:https://www.cnblogs.com/lein317/p/5067621.html
Copyright © 2020-2023  润新知