Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ターミナル出力の色付け / Terminal output coloring
Search
Yoichi NAKAYAMA
September 08, 2020
Programming
260
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ターミナル出力の色付け / Terminal output coloring
Yoichi NAKAYAMA
September 08, 2020
More Decks by Yoichi NAKAYAMA
See All by Yoichi NAKAYAMA
git-jumpを解放する / loosen editor dependency of git-jump
yoichi
0
1.5k
小さなOSS貢献の実践例 / A practical example of a small contribution to OSS
yoichi
0
190
パイプの話 / on pipe
yoichi
0
610
バイナリリーディング / Binary Reading
yoichi
0
460
OSS開発を楽しく続けてきた話
yoichi
0
950
Other Decks in Programming
See All in Programming
Seven New Principles of Software Engineering
yegor256
0
430
Vue.jsで作る空間解析アプリとCapacitorプラグインのData Bridge
hal_spidernight
1
160
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
4
2.8k
Getting Started with Vibe Coding
miccheng
0
180
S3 TablesのIcebergデータに、AIエージェントからアクセスしてみた / 20261016developersio2026joetsu-accessing-iceberg-in-s3tables-via-agent
kasacchiful
PRO
0
260
学びを記事・スライド・Xへ高速展開する― AI-assisted Learning Loopで回すコンテンツ生成術
ochtum
0
190
No More NoSuchMethodError
exoego
1
120
Apple Intelligenceとオンデバイス時代の到来
yahir0
0
190
動画プレイヤーはなぜカクつくのか 〜Flutterのレンダリングとネイティブの境界を解剖する〜
naruogram
0
320
Crash Auto Pipelines
veronikapj
1
340
선언형 햅틱 라이브러리 진동을 소개합니다
l2hyunwoo
1
280
Engineering Biometric UX Across Android Versions | DroidKnights 2026
ryunen344
1
160
Featured
See All Featured
Become a Pro
speakerdeck
PRO
31
6.3k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
550
Mind Mapping
helmedeiros
1
430
KATA
mclloyd
PRO
35
16k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.3k
The agentic SEO stack - context over prompts
schlessera
0
1k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
22k
Everyday Curiosity
cassininazir
0
390
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Optimizing for Happiness
mojombo
378
71k
Faster Mobile Websites
deanohume
310
32k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
60k
Transcript
ターミナル出力の色付け Yoichi Nakayama
ターミナル出力 プログラムが標準出力(stdout)や標準エラー出力(stderr)に書き込んだ内容はプログ ラムを実行したターミナル(terminal, 端末)上に出力される
ターミナル出力の例: ls ディレクトリ、実行権限が付いたファイルに色が付く
ターミナル出力の例: git diff ヘッダ、追加行、削除行に色が付く
ターミナル出力の例: git diff with delta シンタックスハイライト+行内の変更箇所にも色が付く https://github.com/dandavison/delta
ターミナル出力の例: emacs -nw モードに応じたシンタックスハイライト
色の付いた出力 普通に文字列を出力したときは単色だった プログラムによってはカラフルな出力がされていた →どうやったら色付けできるんだろう?
ls の出力を見てみる 出力をodにパイプしてバイナリダンプ 文字列と改行(0a)のみで特に変わったものは入ってない 改行?元々は一行の出力だったのに
感づかれてしまった パイプに気づいてlsは出力内容を変える→このままでは調べられない
回避 --color オプションを付けるとパイプしても色が付く→よさそう
色付き出力 色付き文字の手前に esc [ (CSI = Control Sequence Indicator)で始まる何か https://en.wikipedia.org/wiki/ANSI_escape_code#CSI_sequences
試してみる • echo -e で \xNN をバイトの16進表現と解釈してくれる • \x1b =
esc • esc [ 30~37 m 文字色設定 • esc [ 0 m リセット
まとめ • CSI シーケンスを出力してターミナル出力を制御できる • esc [ 30~37 m で文字色を8色から選んで設定できた
• パイプを検出すると色付けをやめる理由:余計なものが付くから ◦ ls | grep ^dir1$ ターミナルの色付け完全に理解した!
色付けの例: emacs -nw M-x list-colors-display → 8色で終わりじゃない
256 colors • 0~7: standard colors (ESC [ 30~37 m
と同じ) • 8~15: high intensity colors (ESC [ 90~97 m と同じ) • 16~231: 16 + 36 × r + 6 × g + b (0 ≤ r, g, b ≤ 5) • 232~255: grayscale
True Color (24bit) R(0~255), G(0~255), B(0~255) supported terminals: https://gist.github.com/XVilka/8346728#terminals--true-color
応用: longcat -pixterm ▄ (U+2584, LOWER HALF BLOCK) の文字色と背景色を指定している https://yoichi22.hatenablog.com/entry/2020/07/12/110838
おしまい ターミナル出力のさらなるトピック • DA1, DA2, DA3 • Sixel Graphics •
...