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

zshでプロンプトをカラー表示する

More than 5 years have passed since last update.

zshでプロンプトをカラー表示してる人も多いと思う。カラー表示する方法は2種類書き方があって、ちょっと分かりにくいので、その方法についてまとめておく。

方法1

まず1つ目の方法として、プロンプト文字列を%F{色指定}と%fで囲めばその中は指定した色になる。「色指定」の部分には色の名前または数字を書く。使用できる色の名前と数字は以下の通り。

色の名前 数字
black 0
red 1
green 2
yellow 3
blue 4
magenta 5
cyan 6
white 7

%Fと%fの代わりに%Kと%kを使うと、背景色が変わる(bacKgroundのk)。

PROMPT="%F{green}[mollifier]%f %# "

zsh_prompt_1.png

PROMPT="%K{green}[mollifier]%k %# "

zsh_prompt_2.png

方法2

もう1つ、colorsを使用する方法がある。まず準備として、こんな感じでcolors関数を読み込んでおく。

autoload -Uz colors
colors

これ以降は\${fg[色指定]}と\${reset_color}で囲んだ部分がカラー表示になる。

「色指定」の部分には以下の色の名前が指定できる。方法1と違って数字では指定できない

色の名前
black
red
green
yellow
blue
magenta
cyan
white

\${fg[色指定]}の代わりに\${bg[色指定]}と書くと背景色が変わる

PROMPT="${fg[green]}[mollifier]${reset_color} %# "

zsh_prompt_3.png

PROMPT="${bg[green]}[mollifier]${reset_color} %# "

zsh_prompt_5.png

方法1と方法2の違い

方法1と方法2は似てるけど少し違いがある。まず、方法1はcolorsに依存していない。なので、autoload -Uz colorsしなくても方法1は使用できる。

もう一つ違いがあって、方法1はプロンプト表示だけでしか使えないけど、方法2は違っていて、echoとかの単なる文字列表示でも使える。

% echo "${fg[green]}hoge${reset_color}"

zsh_prompt_4.png

プロンプトだけで使う場合は方法1、それ以外の文字列表示にも使うなら方法2、というふうに使い分ければよいとおもう。

参考

Zsh - ArchWiki

mollifier
zsh, vim, vimperator, JavaScript, iOS, .NET に興味があるプログラマ
http://mollifier.hatenablog.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
ユーザーは見つかりませんでした