PS1にブランチを表示し(gitフォルダーにいる場合)、作業ディレクトリが汚れている場合はブランチを赤で、きれいな場合はブルーでブランチを着色します。ここに私が思いついたものがあります
IBlack='\e[0;90m' # Nero
IRed='\e[0;91m' # Rosso
IGreen='\e[0;92m' # Verde
IYellow='\e[0;93m' # Giallo
IBlue='\e[0;94m' # Blu
IPurple='\e[0;95m' # Viola
ICyan='\e[0;96m' # Ciano
IWhite='\e[0;97m' # Bianco
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
branch_color() {
if git status | grep --quiet "nothing to commit"; then
echo -e "$IBlue"
else
echo -e "$IRed"
fi
}
PS1="\[$IGreen\]\u \[$ICyan\][\W]\[\$(branch_color)\]\$(parse_git_branch)\[$IWhite\] \n → "
今、コードはこれを印刷します:
francesco [demo_app]\e[0;94m (master)
→
ここで、francescoはユーザー名、demo_appはフォルダー、masterはブランチです。作業ディレクトリにファイルを作成すると、シーケンス\ e [0; 94mが変更されますが、色は解析されません。
次に、PS1を次のように変更しようとしました。
PS1="\[$IGreen\]\u \[$ICyan\][\W]\[$(branch_color)\]\$(parse_git_branch)\[$IWhite\] \n → "
(branch_color)の前の '\'を削除すると、色を解析しますが、作業ディレクトリのステータスが変わっても変わりません。
どうすれば解決できますか?はっきりしない場合は申し訳ありません。
フランチェスコ
あなたのシステムはどれですか?鉱山ではまだ機能しないためです。色を解析する代わりにプロンプトで文字列として出力します(私はOSX 10.9.1を使用しています)
—
フランチェスコザッファローニ14年
うまくいったマーン!ありがとうございました!(回答として投稿してください。)
—
フランチェスコザッファローニ14年
すばらしいです!回答を投稿しました。
—
テルドン14年
\e[0;94m (master)
が、おそらく構文エラーが原因で削除しました。