あまブログ

ドキドキ......ドキドキ2択クイ〜〜〜〜〜〜〜ズ!!

【Ruby】コンソールに出力結果を色付きで表示する方法【ANSIエスケープシーケンス】

この記事ではRubyの出力結果を色付きで表示する方法を紹介します。

ターミナルの出力結果で色を使うためにはエスケープシーケンスというものを利用します。

エスケープシーケンスはターミナル上で色を含む特定の制御を実現するための特殊な文字列です。

この記事では色の変更に関するエスケープシーケンスのみを紹介します。

書き方

print "<エスケープシーケンス>文字列"

# 赤い文字を表示したい場合
print "\e[31m文字"

1つの文字列に複数のシーケンスを適用することもできる。

# 文字色:赤、背景色:緑色
print "\e[31m\e[42m文字"

末尾に\e[0mでリセットできる。

print "\e[31m赤文字\e[0m"
print "普通の色の文字"

末尾に\e[0mがないと、次の出力も変更した色のまま。

print "\e[31m赤文字"
print "これも赤文字"

カラーコード

例:\e[31

色の名前 文字色 背景色
30 40
31 41
32 42
黄色 33 43
34 44
マゼンタ 35 45
シアン 36 46
37 47
デフォルト 39 49
リセット 0 0

デフォルト:色のみをリセット

print "\e[3m\e[31mイタリック赤文字\e[39m"
print "イタリック普通の色の文字"

リセット:色やその他の効果を全てリセット

print "\e[3m\e[31mイタリック赤文字\e[0m"
print "普通の書式で普通の色の文字"

【参考】