うちのzshがあまりに可愛いので、ちょっと紹介します。
突然ですが、終了ステータスというものがあります。
int main () { return 0; // ← これだ!!! }
シェルの特殊変数では、$?
がこれにあたります。
あと、zshにはConditional Substitutionというものもあります。構文は次のような感じです。
%(x.true-text.false-text)
プログラミングでよく見る三項演算子ですね。
道具は揃った! さあPROMPTだ!まずはシェルで確認してみよう!
PROMPT="%(?.OK.NG) "
Conditional Substitutionの"."は, なんでもいいみたい。
PROMPT="%(?#x.y#a.b) "
という訳で、zshを可愛くしちゃおう!
PROMPT="%(?!(._.)/!(;_;%)?) "
泣き顔の閉じる括弧はエスケープしないとねっ!
色をつけよう!
autoload -Uz colors; colors PROMPT="%(?.%{$bg[green]%}.%{$bg[blue]%})%(?!(._.)/!(;_;%)?)%{${reset_color}%} "
パスを表示しよう!!!
PROMPT="%(?.%{$bg[green]%}.%{$bg[blue]%})%(?!(._.)/!(;_;%)?) %B%~$%b%{${reset_color}%} "
コマンドをみすった時の設定をしよう!
setopt correct SPROMPT="%{$bg[red]%}%{$suggest%}(._.%)? %B %r is correct? [n,y,a,e]:%{${reset_color}%}%b "
まとめ
多分設定はこれだけ。
autoload -Uz colors; colors PROMPT="%(?.%{$bg[green]%}.%{$bg[blue]%})%(?!(._.)/!(;_;%)?) %B%~$%b%{${reset_color}%} " PROMPT2="%{$bg[blue]%}%_>%{$reset_color%}%b " setopt correct SPROMPT="%{$bg[red]%}%{$suggest%}(._.%)? %B %r is correct? [n,y,a,e]:%{${reset_color}%}%b "
bgがきついなぁって人はfgして、顔文字部分もboldにするなどしたらいいんじゃないかな。
結論
zshかわいい