【zsh】プロンプトにgitの状態を表示する

ターミナル操作

zshカスタマイズの一環として、プロンプトに現在のブランチ名と状態を表示するようにする。
これで毎回git branchgit statusを入力する必要がなくなる。

ゴール

手順

基本的なやり方はここに記載してある。

git/contrib/completion/git-prompt.sh at master ?? git/git
Git Source Code Mirror - This is a publish-only repository but pull requests can be turned into patches to the mailing l...

①git-prompt.shをダウンロード

普通にダウンロードしても良いが、curlで一発でダウンロードする場合はこちら。

$ curl -sL https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh -o ~/.git-prompt.sh

最終的に~/.git-prompt.shに配置できればOK。

②.zshrcで読み込ませる

.zshrcに以下を記載して、ダウンロードしたファイルを読み込ませる。

source ~/.git-prompt.sh

③プロンプトをカスタマイズする

初期状態の設定として、~/.zshrcに以下のように設定しておけば良い。

setopt PROMPT_SUBST ; PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ '

筆者はこれに加えて以下のようにカスタマイズしている。

# ファイル変更の状態を可視化
GIT_PS1_SHOWDIRTYSTATE=true

# ステージングされていない新規ファイルを可視化
GIT_PS1_SHOWUNTRACKEDFILES=true

# stashの状態を可視化
GIT_PS1_SHOWSTASHSTATE=true

# HEADとの差分を可視化する
GIT_PS1_SHOWUPSTREAM=auto

setopt PROMPT_SUBST ; PS1='%F{#90C9C1}%~%f %F{#E9C071}$(__git_ps1 "(%s)")%f%# '

■ポイント

  • %F{カラーコード}色をつけたい文字列%f:任意の文字列に色をつける
  • %~:カレントディレクトリを表示

まとめ

  1. スクリプトのダウンロード
  2. .zshrcでダウンロードしたスクリプトを読み込み
  3. 好きなようにプロンプトをカスタマイズする
タイトルとURLをコピーしました