[解決済み】ANSIカラーエスケープシーケンス一覧
質問
ほとんどの端末では、出力に色をつけるには
\033
ANSIエスケープシーケンス
サポートされているすべての色とオプション(明るい、点滅など)のリストが欲しいのですが。
対応端末の違いもあると思うので、主にxterm対応端末でサポートされているシーケンスに興味があります。
どのように解決するのですか?
お探しの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など、設定できるテキストプロパティは非常に多くあります。
フォント効果
n-10
20
フラクトゥール
ほとんどサポートされていない
21
太字オフまたはダブルアンダーライン
ボールドオフはあまりサポートされておらず、ダブルアンダーラインはほとんどサポートされていない。
22
通常の色または強度
太くもなく細くもない
23
イタリック体でない、フラクトゥールでない
24
アンダーラインオフ
単一または二重の下線でない
25
ブリンクオフ
27
逆オフ
28
暴露
隠す
29
クロスしていない
30-37
前景色を設定する
以下のカラーテーブルを参照してください。
38
前景色を設定する
次の引数は
5;<n>
または
2;<r>;<g>;<b>
は、以下を参照してください。
39
デフォルトの前景色
実装定義(規格による)
40-47
背景色の設定
以下のカラーテーブルを参照してください。
48
背景色の設定
次の引数は
5;<n>
または
2;<r>;<g>;<b>
は、以下を参照してください。
49
デフォルトの背景色
実装定義(規格による)
51
枠付き
52
囲み
53
上線
54
枠がない、または囲まれていない
55
オーバーラインなし
60
表意文字下線
ほとんどサポートされていない
61
表意文字二重下線
ほとんどサポートされていない
62
表意文字オーバーライン
ほとんどサポートされていない
63
表意文字ダブルオーバーライン
ほとんどサポートされていない
64
ideogram ストレスマーキング
ほとんどサポートされていない
65
表意文字属性オフ
60-64の全ての効果をリセットする
90-97
明るい前景色を設定する
aixterm (標準ではありません)
100-107
明るい背景色を設定する
aixterm (標準ではありません)
2ビットカラー
もう、これでいいの!
4ビットカラー
端末の色を実装する規格は、限られた(4ビットの)オプションから始まりました。以下の表は、さまざまな端末エミュレータでこれらに使用される背景色と前景色の RGB 値の一覧です。
上記を利用すると、緑色の背景に赤色の文字を作ることができます(でも、なぜ?
\033[31;42m
11色(間奏曲)
その著書「Basic Color Terms: Brent BerlinとPaul Kayは、様々な語族の20の言語から収集したデータを用いて、白、黒、赤、緑、黄、青、茶、紫、ピンク、オレンジ、灰色の11の基本色カテゴリーを特定しました。
バーリンとケイは、色の分類が最大11種類より少ない言語では、色が特定の進化パターンに従っていることを発見した。そのパターンとは次のようなものである。
- すべての言語には、黒(寒色)と白(明色)の用語が含まれている。
- ある言語に3つの用語が含まれている場合、その言語には赤を表す用語が含まれています。
- 4つの用語が含まれる場合、緑か黄色のどちらかの用語が含まれます(両方は含まれません)。
- 5つの用語が含まれる場合、緑と黄色の両方の用語が含まれます。
- 6つの用語を含む言語では、青を表す用語が含まれています。
- ある言語に7つの用語が含まれている場合、その言語には茶色を表す用語が含まれています。
- 8つ以上の用語が含まれている場合、紫、ピンク、オレンジ、グレーを表す用語が含まれています。
このためか、ストーリー ベオウルフ は、黒、白、赤の3色しか含まれていません。また、なぜ 聖書 は青色を含んでいない。ホメロスの オデッセイ 黒は約200回、白は約100回含まれています。赤は15回、黄と緑は10回しか出てきません。( その他の情報はこちら )
また、言語間の違いも興味深い。英語と中国語では、異なる色の単語がたくさん使われていることに注目しよう。しかし、これらの言語をより深く掘り下げてみると、それぞれが異なる方法で色を使用していることがわかります。( その他の情報 )
一般的に言って、人間の言語における色の命名、使用、グループ分けは魅力的です。さて、本番に戻りましょう。
8ビット(256)色
技術の進歩により、下図のように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
トゥルーカラー端末のサポートについて掲載しています。 これ .
上記の多くは、ウィキペディアのページ「"」から引用しています。 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[49m - 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"
このプリントは
関連
-
[解決済み] このように色を表現する場合、#ffffffと0xffffはどう違うのでしょうか?
-
[解決済み] ランタイム中にテキストの色を変更する(Unity)?
-
[解決済み] zshでプロンプトの色を変える(通常のテキストと違う)にはどうしたらいいですか?
-
[解決済み] node.jsのコンソールのフォントカラーを変更する方法は?
-
[解決済み] svg要素の色を変更するには?
-
[解決済み] SVGの塗りつぶし色の透明度/アルファ値?
-
[解決済み】背景色によって文字色を白や黒にする方法は?
-
[解決済み] 透明なARGBの16進数値
-
[解決済み] Vim: 検索ヒットやクイックフィックス選択時のハイライト色を変更する方法
-
[解決済み] RGBの値がある場合、どのように色合い(シェード)を作成するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] このように色を表現する場合、#ffffffと0xffffはどう違うのでしょうか?
-
[解決済み] ランタイム中にテキストの色を変更する(Unity)?
-
[解決済み] zshでプロンプトの色を変える(通常のテキストと違う)にはどうしたらいいですか?
-
[解決済み] SVGの塗りつぶし色の透明度/アルファ値?
-
[解決済み】背景色によって文字色を白や黒にする方法は?
-
[解決済み】ANSIカラーエスケープシーケンス一覧
-
[解決済み] 透明なARGBの16進数値
-
[解決済み] Vim: 検索ヒットやクイックフィックス選択時のハイライト色を変更する方法
-
[解決済み] RGBの値がある場合、どのように色合い(シェード)を作成するのですか?