Mac のターミナルのプロンプトに Git ブランチ名を表示するようカスタマイズしてみた
普段、Windows 環境では GitBash を使っているので、プロンプトにディレクトリ名と Git ブランチ名が表示されている。
一方、Mac のターミナルは、Git をインストールしても Bash 環境には何ら影響がないので、ブランチ名が分かりづらかったりしてつらい。
ということで、Mac のターミナルのプロンプト表示をカスタマイズしてみた。
プロンプトの表示仕様変更
プロンプトの表示仕様を変更するには、PS1
という環境変数を変更する。
# 例えば「(ディレクトリ名) $ (ココにコマンド)」という形式のプロンプトにする場合
export PS1='\w $ '
この設定を .bash_profile
に書いてやれば、プロンプトの表示形式を変更できるというワケだ。
この表示形式変更だが、特殊記号を使うと文字色も変更できるので、設定次第で GitBash のようなカラフルなプロンプトも自分で作れるのだ。
今回は GitBash For Windows の設定を丸パクリする
GitBash での表示形式が気に入っているなら丸パクリしちゃえばいいじゃない、ということで、GitBash はどのようにプロンプトを設定しているのか確認してみた。
# 環境変数 $PS1 がどう設定されているのか確認する
$ echo $PS1
\[\033]0;$TITLEPREFIX:${PWD//[^[:ascii:]]/?}\007\]\n\[\033[32m\]\u@\h \[\033[35m\]$MSYSTEM \[\033[33m\]\w\[\033[36m\]`__git_ps1`\[\033[0m\]\n$
このようになっていた。
\
を省略するが、[033[32m]
などのように書かれている部分が、文字色を変更するための書き方になっている。\n
は改行、\u
はユーザ名、\h
はホスト名、といったように、書き方が決まっている。
この辺は参考記事を見ながらカスタマイズすれば良い。
今回は Mac のターミナルにも上の設定をほぼ丸パクリしようと思う。ただ、$MSYSTEM
という変数部分が要らないので、これだけ削除しておく。
.bash_profile
に書く前に確認するには、ターミナル中で以下のような形で、export
はせずに実際に PS1
に代入してやることで即時反映できる (ただしターミナルを閉じると変更は保持されずに破棄される)。
# 「MINGW64」部分がないので削除した状態で試しにプロンプトを変えてみる
PS1='\n\[\033[32m\]\u@\h \[\033[33m\]\w\[\033[36m\]`__git_ps1`\[\033[0m\]\n$ '
これで動くはず、なのだが、Mac の場合、ブランチ名を表示するために使用している git_ps1
という変数部分をデフォルトだと解釈できないと思う。どうやら Git が提供する必要なシェルスクリプトを読んでおかないといけないようだ。
そこで、.bash_profile
に書き込む場合は、以下のように記載する必要がある。
# Git のプロンプトと Git 入力補完のシェルを読み込んでおく
. /usr/local/etc/bash_completion.d/git-prompt.sh
. /usr/local/etc/bash_completion.d/git-completion.bash
# プロンプトの表示仕様を決めるオプション変数
GIT_PS1_SHOWDIRTYSTATE=true
# プロンプトの表示形式を宣言
export PS1='\n\[\033[32m\]\u@\h \[\033[33m\]\w\[\033[36m\]`__git_ps1`\[\033[0m\]\n$ '
GIT_PS1_SHOWDIRTYSTATE
に関しては、以下の記事でその他のオプションも紹介している。
これで、GitBash For Windows とほぼ同じプロンプトを Mac のターミナルにも設定できたはずだ。
- 参考 : Git Bashのプロンプトから不要な箇所を消してスッキリさせる - Qiita …
git-prompt.sh
を直接書き換えてプロンプトの表示形式を変えるやり方