読者です 読者をやめる 読者になる 読者になる

肉とビールとパンケーキ by @sotarok

少し大人になった「肉とご飯と甘いもの」

PROMPT の色を rotate してハッピーハッキングライフ

zsh

を見て,かっけーと思って設定した.


実際には precmd の中に PROMPT の記述も含めないとできなかったんだけど,これであってるのかなあ.
一応,root のときは真っ赤で,それ以外のときはローテート.(あと ssh で入ってるとき以外はhost表示しないとか.このへんは漢のやつで.)

case ${UID} in
0)
    PROMPT="%B%{^[[31m%}%n@%m#%{^[[m%}%b "
    PROMPT2="%B%{^[[31m%}%_#%{^[[m%}%b "
    SPROMPT="%B%{^[[31m%}%r is correct? [n,y,a,e]:%^[[m%}%b "
;;
*)
    PROMPT_COLOR=32
    precmd() {
        PROMPT_COLOR="$[32 + ($PROMPT_COLOR - 31) % 5]"
        PROMPT="%{^[[${PROMPT_COLOR}m%}%n%%%{^[[m%} "
        PROMPT2="%{^[[${PROMPT_COLOR}m%}%_%%%{^[[m%} "

        [ -n "${REMOTEHOST}${SSH_CONNECTION}" ] &&
            PROMPT="%{^[[37m%}${HOST%%.*} ${PROMPT}"

        _update_rprompt
    }

    SPROMPT="%{^[[31m%}%r is correct? [n,y,a,e]:%{^[[m%} "
;;
esac

あ,当然 ^[ は制御文字です. (vim なら C-v [ )

あと _update_rprompt は Git のブランチ名をRPROMPTに表示させるための関数.


動画:

行が変わるごとに色がかわってかわいい.