プログラミングは芸術だ!

web系エンジニアの備忘録 「プログラミングは芸術」を座右の銘として日々勉強中 最近Androidもやってます

プロンプト表示をカスタムしてみる【gitのブランチも表示するよ!】

qiita.com

上記Qiitaページのすごく参考にしております。ぜひご一読を!これパクリなんじゃ
少しだけ修正を加えたので備忘録として書いておきます

.bashrcに下記を追加

function parse_git_branch {
    git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
function promps {
    local BLUE="\[\e[1;34m\]"
    local RED="\[\e[1;31m\]"
    local GREEN="\[\e[1;32m\]"
    local WHITE="\[\e[00m\]"
    local GRAY="\[\e[1;37m\]"
    local CYAN="\[\e[1;36m\]"
    local PURPLE="\[\e[1;35m\]"

    case $TERM in
        xterm*) TITLEBAR='\[\e]0;\W\007\]';;
        *)      TITLEBAR="";;
    esac
    local BASE="${GREEN}\u${WHITE}@${GREEN}\h"
    PS1="${TITLEBAR}${BASE}${WHITE}:${BLUE}\w${CYAN}\$(parse_git_branch)${BLUE}\$${WHITE} "
}
promps

ちょっとした解説

sedコマンド
文字列の操作をするコマンド

eオプション
この後ろに操作処理を書いていく

dオプション
正規表現に当てはまった対象を削除

sオプション
置換
ちなみにgオプション追加ですべて置換(vimと一緒ですね)
's/* \(.*\)/ (\1)/g'

git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'

なのでこれは、
git branch --no-colorでbranch一覧を出力して(2> /dev/nullでエラー出力は廃棄)、
sed -e '/^[^*]/d' で 先頭に*がついていない行を削除して、
e 's/* \(.*\)/ (\1)/' で()の中身だけを抜き出しているって感じですね


プロンプトの色を定数にしておくのは便利 かつ わかりやすくていいですね!

この辺もご一緒にどうぞ!charlie1012.hatenablog.jp


参考
プロンプトの確認や設定 - Pocketstudio.jp Linux Wiki
Linux - プロンプトをカスタマイズしてgitブランチを表示する - Qiita