Help us understand the problem. What is going on with this article?

ANSIエスケープシーケンス チートシート

More than 1 year has passed since last update.

ANSIエスケープシーケンスを駆使すれば、
こんな感じでターミナルの出力に色を付けたり
2017-11-02_18h13_43.png

出力した内容を書き換えたりできる。
escape.gif

[PHP]ゲーム作成初心者がPHPでテト〇ス風ゲームを作ってみた
上記記事にて出力されるブロックの色を変更したり、出力内容を上書きしたりするのに使った。

記法

指定がない限り、太字の部分が可変となる箇所。

カーソル移動

記法 内容
\e[nA 上にn移動
\e[nB 下にn移動
\e[nC 右にn移動
\e[nD 左にn移動
\e[nE n行下の先頭に移動
\e[nF n行上の先頭に移動
\e[nG 現在位置と関係なく左からnの場所に移動
\e[n;mH
\e[n;mf
現在位置と関係なく上からn、左からmの場所に移動

コンソールスクロール

記法 内容
\e[nS n行分コンソールを次にスクロール
\e[nT n行分コンソールを前にスクロール

出力消去

記法 内容
\e[nJ 画面消去
0(or省略)・・・カーソルより後ろを消去
1・・・カーソルより前を消去
2・・・画面全体を消去
\e[nK 行消去
0(or省略)・・・カーソルより後ろを消去
1・・・カーソルより前を消去
2・・・行全体を消去

出力文字の変更

注:ターミナルによって対応してる/してないが分かれる

記法 内容
\e[0m 指定をリセットし未指定状態に戻す(0は省略可)
\e[1m 太字
\e[2m 薄く表示
\e[3m イタリック
\e[4m アンダーライン
\e[5m ブリンク
\e[6m 高速ブリンク
\e[7m 文字色と背景色の反転
\e[8m 表示を隠す(コピペ可能)
\e[9m 取り消し

出力色の変更

先述した \e[0m でリセット可能。

文字色 背景色
\e[30m \e[40m
\e[31m \e[41m
\e[32m \e[42m
\e[33m \e[43m 黄色
\e[34m \e[44m
\e[35m \e[45m マゼンダ
\e[36m \e[46m シアン
\e[37m \e[47m

出力色の変更(拡張)

注:ターミナルによって対応してる/してないが分かれる

文字色 背景色 内容
\e[38;5;nm \e[48;5;nm nを0~255のカラーコードを指定
\e[38;2;r;g;bm \e[48;2;r;g;bm RGBでのカラーコードを指定
(対応端末少ない)

サンプル

サンプルは Windows10 + Cygwin で表示された内容

出力文字

for ((i = 1; i <= 9; i++)); do
    printf '\e[%dm%d\e[m ' $i $i
done

2017-11-02_16h32_26.png

ブリンクはしなかった。

文字色

for ((i = 30; i <= 37; i++)); do
    printf '\e[%dm%d\e[m ' $i $i
done

2017-11-02_16h13_32.png

背景色

for ((i = 40; i <= 47; i++)); do
    printf '\e[%dm%d\e[m ' $i $i
done

2017-11-02_16h15_20.png

文字色(拡張)

for ((i = 0; i < 16; i++)); do
    for ((j = 0; j < 16; j++)); do
        hex=$(($i*16 + $j))
        printf '\e[38;5;%dm0x%02X\e[m ' $hex $hex
    done
    echo "";
done

2017-11-02_16h16_52.png

背景色(拡張)

for ((i = 0; i < 16; i++)); do
    for ((j = 0; j < 16; j++)); do
        hex=$(($i*16 + $j))
        printf '\e[48;5;%dm0x%02X\e[m ' $hex $hex
    done
    echo "";
done

2017-11-02_16h17_54.png

PruneMazui
試行錯誤の毎日 割と雑食だけどよくいるのはこの辺 ⇒ アジャイル / プロジェクトマネジメント / バックエンドアーキテクチャ / OOP / FP / RDBMS
admin-guild
「Webサービスの運営に必要なあらゆる知見」を共有できる場として作られた、運営者のためのコミュニティです。
https://admin-guild.slack.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした