BETA

zshプロンプトを顔文字にしよう(`・ω・´)

投稿日:2018-10-14
最終更新:2018-10-24

zshプロンプトを顔文字にします。 イメージはこんな感じ。

(`・ω・´)  [email protected]: (18-10-14 12:07:27) []
~ $ cd ~
(`・ω・´)  [email protected]: (18-10-14 12:07:35) []
~ $ hoge
zsh: command not found: hoge
(´・ω・`)  [email protected]: (18-10-14 12:07:38) []
~ $ 

(Qrunchには画像投稿機能はついていないんですね)

やり方

.zshrcのプロンプト関係の変数に表示したい文字列を代入します。エスケープが大切です。

私の.zshrc

SHOBON=$'\(´・ω・\`%)' 
SHAKIN=$'\(\`・ω・´%)' 
#prompt
PROMPT='%(?.%F{cyan}$SHAKIN.%F{red}$SHOBON) %f %B%F{green}%[email protected]%M%f%b: (%F{blue}%D %*%f) [${vcs_info_msg_0_}]%B%F{blue}%~%f%b $ '                                                                                 
PROMPT2='%B%F{green}%_%f%b> '

ずいぶん長くなりましたがこんな感じです。

これで実行成功時には青字でシャキーンが、失敗時には赤字でショボーンが返ってきます。

重要なとこだけ解説

` SHOBON=$'\(´・ω・\`%)' SHAKIN=$'\(\`・ω・´%)' %(?.%F{cyan}$SHAKIN.%F{red}$SHOBON) %f

$'': 変数として囲っています。こうしないとエスケープがエスケープされた状態になり、変数として成立しなくなります。 \, %: zshrcとしてのエスケープとプロンプト変数内でのエスケープです。ごっちゃになって非常に紛らわしいことになっています。

?: 実行の成否で表示内容を変えます。成功時に.の間、失敗時に2つ目の.の後を表示します。 %F{color}foo%f: 色変更です。fooの部分がcolorで指定した色になります。

まとめ

あなたのプロンプトにも顔文字を!

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@aimofの技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう