ANSIカラーエスケープシーケンスのリスト


225

ほとんどの端末では、\033ANSIエスケープシーケンスを使用して出力に色を付けることができます。

サポートされているすべての色とオプション(明るい色や点滅など)のリストを探しています。

それらをサポートする端末間でおそらく違いがあるので、私は主にxterm互換端末でサポートされるシーケンスに興味があります。


実際には、windows cmdで色を使用できます。stackoverflow.com/questions/41207496/...
ジョエル

以下とからMSDN
ジョエル

回答:


510

探しているANSIエスケープシーケンスは、Select Graphic Renditionサブセットです。これらはすべて次の形式です

\033[XXXm

ここで、XXXセミコロンで区切られた一連のパラメータです。

たとえば、Cでテキストを赤、太字、下線(他の多くのオプションについては後で説明します)にすると、次のようになります。

printf("\033[31;1;4mHello\033[0m");

C ++では、

std::cout<<"\033[31;1;4mHello\033[0m";

Python3では、

print("\033[31;1;4mHello\033[0m")

そしてBashではあなたが使うでしょう

echo -e "\033[31;1;4mHello\033[0m"

最初の部分はテキストを赤(31)、太字(1)、下線(4)にし、最後の部分はこれをすべてクリアします(0)。

下の表で説明するように、太字、フォント、下線、&cなど、設定できるテキストプロパティは多数あります。(StackOverflowが回答に適切なテーブルを配置することを許可しないのはばかげていませんか?)

フォント効果

╔══════════╦════════════════════════════════╦═════════════════════════════════════════════════════════════════════════╗
║  Code    ║             Effect             ║                                   Note                                  ║
╠══════════╬════════════════════════════════╬═════════════════════════════════════════════════════════════════════════╣
║ 0        ║  Reset / Normal                ║  all attributes off                                                     ║
║ 1        ║  Bold or increased intensity   ║                                                                         ║
║ 2        ║  Faint (decreased intensity)   ║  Not widely supported.                                                  ║
║ 3        ║  Italic                        ║  Not widely supported. Sometimes treated as inverse.                    ║
║ 4        ║  Underline                     ║                                                                         ║
║ 5        ║  Slow Blink                    ║  less than 150 per minute                                               ║
║ 6        ║  Rapid Blink                   ║  MS-DOS ANSI.SYS; 150+ per minute; not widely supported                 ║
║ 7        ║  [[reverse video]]             ║  swap foreground and background colors                                  ║
║ 8        ║  Conceal                       ║  Not widely supported.                                                  ║
║ 9        ║  Crossed-out                   ║  Characters legible, but marked for deletion.  Not widely supported.    ║
║ 10       ║  Primary(default) font         ║                                                                         ║
║ 11–19    ║  Alternate font                ║  Select alternate font `n-10`                                           ║
║ 20       ║  Fraktur                       ║  hardly ever supported                                                  ║
║ 21       ║  Bold off or Double Underline  ║  Bold off not widely supported; double underline hardly ever supported. ║
║ 22       ║  Normal color or intensity     ║  Neither bold nor faint                                                 ║
║ 23       ║  Not italic, not Fraktur       ║                                                                         ║
║ 24       ║  Underline off                 ║  Not singly or doubly underlined                                        ║
║ 25       ║  Blink off                     ║                                                                         ║
║ 27       ║  Inverse off                   ║                                                                         ║
║ 28       ║  Reveal                        ║  conceal off                                                            ║
║ 29       ║  Not crossed out               ║                                                                         ║
║ 30–37    ║  Set foreground color          ║  See color table below                                                  ║
║ 38       ║  Set foreground color          ║  Next arguments are `5;<n>` or `2;<r>;<g>;<b>`, see below                       ║
║ 39       ║  Default foreground color      ║  implementation defined (according to standard)                         ║
║ 40–47    ║  Set background color          ║  See color table below                                                  ║
║ 48       ║  Set background color          ║  Next arguments are `5;<n>` or `2;<r>;<g>;<b>`, see below                       ║
║ 49       ║  Default background color      ║  implementation defined (according to standard)                         ║
║ 51       ║  Framed                        ║                                                                         ║
║ 52       ║  Encircled                     ║                                                                         ║
║ 53       ║  Overlined                     ║                                                                         ║
║ 54       ║  Not framed or encircled       ║                                                                         ║
║ 55       ║  Not overlined                 ║                                                                         ║
║ 60       ║  ideogram underline            ║  hardly ever supported                                                  ║
║ 61       ║  ideogram double underline     ║  hardly ever supported                                                  ║
║ 62       ║  ideogram overline             ║  hardly ever supported                                                  ║
║ 63       ║  ideogram double overline      ║  hardly ever supported                                                  ║
║ 64       ║  ideogram stress marking       ║  hardly ever supported                                                  ║
║ 65       ║  ideogram attributes off       ║  reset the effects of all of 60-64                                      ║
║ 90–97    ║  Set bright foreground color   ║  aixterm (not in standard)                                              ║
║ 100–107  ║  Set bright background color   ║  aixterm (not in standard)                                              ║
╚══════════╩════════════════════════════════╩═════════════════════════════════════════════════════════════════════════╝

2ビットカラー

あなたはすでにこれを持っています!

4ビットカラー

端末の色を実装する標準は、限られた(4ビット)オプションから始まりました。以下の表は、さまざまな端末エミュレーターがこれらに使用する背景色と前景色のRGB値を示しています。

さまざまな端末エミュレーターによって実装されたANSI色の表

上記を使用して、緑の背景に赤のテキストを作成できます(しかし、なぜですか?):

\033[31;42m

11色(間奏)

ブレントベルリンとポールケイは、彼らの著書「基本的な色の用語:その普遍性と進化」で、さまざまな言語ファミリの20の異なる言語から収集したデータを使用して、11種類の基本的な色のカテゴリ(白、黒、赤、緑、黄色、ブルー、ブラウン、パープル、ピンク、オレンジ、グレー。

ベルリンとケイは、最大11色のカテゴリに満たない言語では、色が特定の進化パターンに従っていることを発見しました。このパターンは次のとおりです。

  1. すべての言語には、黒(クールな色)と白(明るい色)の用語が含まれています。
  2. 言語に3つの用語が含まれている場合、赤の用語が含まれています。
  3. 言語に4つの用語が含まれている場合、その言語には緑または黄色(両方ではない)のいずれかの用語が含まれています。
  4. 言語に5つの用語が含まれている場合、緑と黄色の両方の用語が含まれています。
  5. 言語に6つの用語が含まれている場合は、青を表す用語が含まれています。
  6. 言語に7つの用語が含まれている場合は、茶色の用語が含まれています。
  7. 言語に8つ以上の用語が含まれている場合は、紫、ピンク、オレンジ、または灰色の用語が含まれています。

これが、ストーリーBeowulfが黒、白、赤の色しか含まない理由かもしれません。聖書が青を含まないのもこのためかもしれません。ホーマーのオデッセイは、黒が約200倍、白が約100倍含まれています。赤は15回表示されますが、黄色と緑は10回のみ表示されます。(詳細はこちら

言語間の違いも興味深いです。英語と中国語で使われている色の異なる単語がたくさんあることに注意してください。ただし、これらの言語をさらに掘り下げると、それぞれが異なる方法で色を使用していることがわかります。(詳細

中国語と英語の色の名前。 「muyueh.com」を元にした画像

一般的に言えば、人間の言語での色の命名、使用、およびグループ化は魅力的です。さて、ショーに戻りましょう。

8ビット(256)色

テクノロジーが進歩し、以下に示すように、256の事前に選択された色のテーブルが利用可能になりました。

ANSIエスケープシーケンス用の256ビットカラーモード

上記を使用して、ピンクのテキストを次のように作成できます。

\033[38;5;206m     #That is, \033[38;5;<FG COLOR>m

そして早朝の青い背景を使用して

\033[48;5;57m      #That is, \033[48;5;<BG COLOR>m

そしてもちろん、これらを組み合わせることができます:

\033[38;5;206;48;5;57m

8ビットの色は次のように配置されます。

0x00-0x07:  standard colors (same as the 4-bit colours)
0x08-0x0F:  high intensity colors
0x10-0xE7:  6 × 6 × 6 cube (216 colors): 16 + 36 × r + 6 × g + b (0 ≤ r, g, b ≤ 5)
0xE8-0xFF:  grayscale from black to white in 24 steps

すべての色

現在、私たちは将来を生きており、完全なRGBスペクトルは以下を使用して利用できます。

\033[38;2;<r>;<g>;<b>m     #Select RGB foreground color
\033[48;2;<r>;<g>;<b>m     #Select RGB background color

だからあなたはピンクがかったテキストを茶色がかった背景に置くことができます

\033[38;2;255;82;197;48;2;155;106;0mHello

「トゥルーカラー」端末のサポートはここにリストされています

上記の多くは、Wikipediaのページ「ANSIエスケープコード」から抜粋したものです

思い出させる便利なスクリプト

私はよく何色が何であるかを思い出そうとする立場にあるので、次のような便利なスクリプトがあります~/bin/ansi_colours

#!/usr/bin/python

print "\\033[XXm"

for i in range(30,37+1):
    print "\033[%dm%d\t\t\033[%dm%d" % (i,i,i+60,i+60);

print "\033[39m\\033[39m - Reset colour"
print "\\033[2K - Clear Line"
print "\\033[<L>;<C>H OR \\033[<L>;<C>f puts the cursor at line L and column C."
print "\\033[<N>A Move the cursor up N lines"
print "\\033[<N>B Move the cursor down N lines"
print "\\033[<N>C Move the cursor forward N columns"
print "\\033[<N>D Move the cursor backward N columns"
print "\\033[2J Clear the screen, move to (0,0)"
print "\\033[K Erase to end of line"
print "\\033[s Save cursor position"
print "\\033[u Restore cursor position"
print " "
print "\\033[4m  Underline on"
print "\\033[24m Underline off"
print "\\033[1m  Bold on"
print "\\033[21m Bold off"

これはプリント

シンプルなANSIカラー


4
ANSIエスケープコードの完全なセット:ascii-table.com/ansi-escape-sequences-vt-100.php
formixian

3
@giusti:どちらecho -e "\033[38;05;34;1mHi"echo -e "\033[38;05;34m\033[1mHi"色の外観がでこれをテストしていたターミナルIで太字の下でわずかに変化させ、アンチエイリアスフォント効果はなかったものの、私のために働きました。
リチャード

4
SGR(\033[38および48で始まる)コードがはずそうでない場合に予約して分離する::これは一次ソースから完全に明らかではないが、サブセパレータとしてecma-international.org/publications/files/ECMA-ST/Ecma -048.pdfおよびitu.int/rec/…。また、一部の解釈では、2(16M-color RGB)/ 3(16M-color CMY)/ 4(??? CMYK)フォームのカラースペースIDが忘れられます。たとえば\033[38:2::255:255:255m、白の16Mフォアグラウンド用でなく、\033[38:2:255:255:255m
SlySven

2
私がこれについて続ける理由は、私がコード化するプロジェクトMudletが両方のフォームを処理する必要があり、私は最近それをよりうまく機能させるためにこれにひじをつけた...
SlySven

4
ANSIカラーのリストを見つけたかっただけで、「基本的なカラー用語」に関する記事を読むのに時間がかかりすぎました。大きな気晴らしをありがとう!:)
mzuther

14

どうですか:

ECMA-48-コード化文字セットの制御機能、第5版(1991年6月) -色制御コードを定義する標準。xtermでもサポートされているようです。

SGR 38および48は元々ECMA-48によって予約されていましたが、数年後、ITU、IEC、およびISOの共同規格で具体化されました。 38/48制御シーケンス ダイレクトカラーインデックスカラーの

ANSIエスケープコードのWikipediaページのこの表に xtermの列があります



4

それはあなたの端末に完全に関連しています。VTEは、あなたが使用している場合は、点滅をサポートしていないgnome-terminaltildaguaketerminatorxfce4-terminalなどVTEに応じてオン、あなたが点滅を持っていないでしょう。
VTEで点滅を使用する場合、または使用したい場合は、を使用する必要がありますxterm
端末名を指定してinfocmpコマンドを使用できます。

#infocmp vt100 
#infocmp xterm 
#infocmp vte 

例えば ​​:

# infocmp vte
#   Reconstructed via infocmp from file: /usr/share/terminfo/v/vte
vte|VTE aka GNOME Terminal,
    am, bce, mir, msgr, xenl,
    colors#8, cols#80, it#8, lines#24, ncv#16, pairs#64,
    acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
    bel=^G, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[2J,
    cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
    cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
    cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
    cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
    dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J,
    el=\E[K, enacs=\E)0, home=\E[H, hpa=\E[%i%p1%dG, ht=^I,
    hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m,
    is2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8,
    kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~,
    kLFT=\E[1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\E[1;2C,
    kb2=\E[E, kbs=\177, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB,
    kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~, kend=\EOF, kf1=\EOP,
    kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[1;2P,
    kf14=\E[1;2Q, kf15=\E[1;2R, kf16=\E[1;2S, kf17=\E[15;2~,
    kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~,
    kf21=\E[20;2~, kf22=\E[21;2~, kf23=\E[23;2~,
    kf24=\E[24;2~, kf25=\E[1;5P, kf26=\E[1;5Q, kf27=\E[1;5R,
    kf28=\E[1;5S, kf29=\E[15;5~, kf3=\EOR, kf30=\E[17;5~,
    kf31=\E[18;5~, kf32=\E[19;5~, kf33=\E[20;5~,
    kf34=\E[21;5~, kf35=\E[23;5~, kf36=\E[24;5~,
    kf37=\E[1;6P, kf38=\E[1;6Q, kf39=\E[1;6R, kf4=\EOS,
    kf40=\E[1;6S, kf41=\E[15;6~, kf42=\E[17;6~,
    kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~,
    kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~,
    kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q, kf51=\E[1;3R,
    kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~,
    kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~,
    kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~,
    kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~,
    kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khome=\EOH,
    kich1=\E[2~, kind=\E[1;2B, kmous=\E[M, knp=\E[6~,
    kpp=\E[5~, kri=\E[1;2A, kslt=\E[4~, meml=\El, memu=\Em,
    op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, ritm=\E[23m,
    rmacs=^O, rmam=\E[?7l, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
    rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, rs1=\Ec,
    rs2=\E7\E[r\E8\E[m\E[?7h\E[!p\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
    sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
    sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p5%t;2%;%?%p7%t;8%;%?%p1%p3%|%t;7%;m%?%p9%t\016%e\017%;,
    sgr0=\E[0m\017, sitm=\E[3m, smacs=^N, smam=\E[?7h,
    smcup=\E7\E[?47h, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m,
    smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
    u8=\E[?%[;0123456789]c, u9=\E[c, vpa=\E[%i%p1%dd,

VTE 0.52 / gnome-terminal 3.28は、点滅するテキストのサポートを追加します(したがって、他のVTEベースのエミュレータでも機能します)。
エモント2018年

1

上記の言語以外で適切な結果が得られない場合、C#を使用してテキストをコンソール(ターミナル)ウィンドウに出力する場合は、「\ 033」「\ x1b」に置き換える必要があります。Visual Basicでは、Chrw(27)になります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.