この記事の目的
初期設定のPCにて、ターミナルのプロンプトの設定に少し苦戦したので、現状の設定をここに記しておきます。
私の設定では、プロンプトは以下のように表示され、こだわりポイントは以下3点です。
- 二行プロンプトとし、入力するコマンドを常に左端に表示させることで、目の移動を最小限に抑える
- gitで管理下のディレクトリでは、branch名とその状態(add済、など)を表示させる
- 現在のディレクトリを太文字・ユーザーとホスト名をシアンにすることで見やすくする(自分なりに
~/.zshrc
以下がプロンプトの表示設定ファイルであり、source ~/.zshrc
で変更を反映させることができます。
$ cat ~/.zshrc
# ここら下はbranch名を表示させるメソッドの設定-----------------------------
function rprompt-git-current-branch {
local branch_name st branch_status
if [ ! -e ".git" ]; then
# gitで管理されていないディレクトリは何も返さない
return
fi
branch_name=`git rev-parse --abbrev-ref HEAD 2> /dev/null`
st=`git status 2> /dev/null`
if [[ -n `echo "$st" | grep "^nothing to"` ]]; then
# 全てコミットされてクリーンな状態
branch_status=""
elif [[ -n `echo "$st" | grep "^Untracked files"` ]]; then
# gitに管理されていないファイルがある状態
branch_status=" !"
elif [[ -n `echo "$st" | grep "^Changes not staged for commit"` ]]; then
# git addされていないファイルがある状態
branch_status=" *"
elif [[ -n `echo "$st" | grep "^Changes to be committed"` ]]; then
# git commitされていないファイルがある状態
branch_status=" +"
elif [[ -n `echo "$st" | grep "^rebase in progress"` ]]; then
# コンフリクトが起こった状態
echo "%F{red} !!"
return
else
# 上記以外の状態の場合は青色で表示させる
branch_status=""
fi
# ブランチ名を色付きで表示する
echo "($branch_name${branch_status})"
}
# プロンプトが表示されるたび、毎回プロンプトの文字列を評価し、置換する
setopt prompt_subst
# ここら下はプロンプトの表示設定-----------------------------
PROMPT='%F{cyan}[%n@%m]%F{white}: %B%~%b `rprompt-git-current-branch`
$ '
簡単な解説
上記のファイルは2段構成に分かれています。
gitのbranchの状態表示
この.zshrcファイルは、ほとんどgitのbranchの状態を表示させるメソッドrprompt-git-current-branch
の設定が大体を占めています。
ほとんど参考記事のコピペですが、私の場合は状態によって色の表示ではなく、末尾のマークを変更しています。
クリーンな状態 [user@host]: ~/www/ccc (999_branch_name)
Untracked filesがある状態 [user@host]: ~/www/ccc (999_branch_name !)
addされていない状態 [user@host]: ~/www/ccc (999_branch_name *)
コミットされていない状態 [user@host]: ~/www/ccc (999_branch_name +)
この設定は上記のファイルのbranch_status=" !"
の部分で変更しています。ここで状態毎に色や太字など変化させることが可能です。
PROMPTの設定
プロンプトの表示設定はここだけです
PROMPT='%F{cyan}[%n@%m]%F{white}: %B%~%b `rprompt-git-current-branch`
$ '
まず2段に分けることで、2行プロンプトにしています。
それぞれのコードの意味は、以下に示しますが、基本的に%
を先頭に置き、それに続く文字により表示内容が変化します。
%n
:ユーザー名
%m
:ホスト名
%~
:カレンとディレクトリ
%F{color}
:色の表示変更、colorの部分に自分の場合はwhiteやsyanを入れています
%f
:色の表示変更終了
%B
:文字の太文字表示
%b
:文字の太文字表示終了
参考記事
gitのbranch名を表示させるメソッド
プロンプトの表示設定
以上です!最後までお読み頂きありがとうございました!