<h2><a href="https://tforgione.fr/posts/ansi-escape-codes/" rel="nofollow noreferrer">ANSI Escape Codes</a></h2>
<p>ANSI转义码允许你在终端上做很多漂亮的事情。您可以更改字体的颜色、字体样式(粗体、斜体、下划线等),也可以移动光标以覆盖以前的文本,从而动态更改文本</p>
<p><strong>建筑规范</strong></p>
<p>基本上,代码是这样构建的:</p>
<pre><code>\033[XXXm
</code></pre>
<p>其中<code>XXX</code>是一系列分号分隔的参数</p>
<ul>
<li>它们以<code>\033[</code>(或上面指定的任何代码+[)开头</li>
<li>然后,包含任意数量的整数,整数之间用分隔符分隔</li>
<li>它们以m结尾</li>
</ul>
<p>仅包含0(即\x1B[0m)的代码将重置字体的任何样式属性</p>
<p>大多数情况下,您将打印更改终端样式的代码,然后打印特定字符串,然后是重置代码</p>
<p>以下是可用于更改字体颜色或背景颜色的代码</p>
<pre class="lang-none prettyprint-override"><code>| Color | Font code | Background code |
| | | |
| Black | \x1B[30m | \x1B[40m |
| Red | \x1B[31m | \x1B[41m |
| Green | \x1B[32m | \x1B[42m |
| Yellow | \x1B[33m | \x1B[43m |
| Blue | \x1B[34m | \x1B[44m |
| Magenta | \x1B[35m | \x1B[45m |
| Cyan | \x1B[36m | \x1B[46m |
| White | \x1B[37m | \x1B[47m |
| Any palette color (with V in [0-255]) | \x1B[38;5;Vm | \x1B[48;5;Vm |
| Any RGB color (with values in [0-255]) | \x1B[38;2;R;G;Bm | \x1B[48;2;R;G;Bm |
</code></pre>
<ul>
<li><a href="https://gist.github.com/vratiu/9780109" rel="nofollow noreferrer">List of ANSI color escape sequences</a></li>
<li><a href="https://www.lihaoyi.com/post/BuildyourownCommandLinewithANSIescapecodes.html" rel="nofollow noreferrer">Build your own Command-Line with ANSI escape codes</a></li>
</ul>