1
3

More than 3 years have passed since last update.

ターミナルにお寿司を出す

Posted at

お前らのターミナルはダサいを読んで、

「確かにダサい。ダサいしお寿司食べたい。」と思ったのでターミナルの入力待ちをお寿司にしてへいお待ちって感じにした。

before

image.png

after

image.png

手順

兎にも角にもまずお寿司

.zshrcを編集していきます。ユーザホームディレクトリにあると思います。なければ作りましょう。

vim ~/.zshrc
~/.zshrc
PROMPT='🍣'

PROMPTはプロンプトの左側に何を表示するのかを設定する項目になります。
編集が終わったらsourceで読み込みます。

source ~/.zshrc

image.png
お寿司です。お寿司が出ましたね。
ちなみに、絵文字はcmd+ctrl+spaceで入力できます。(キー配列によって異なるかも)

カレント表示したい

さて、最大の目的のお寿司は出せたものの、これではお寿司だけに完全にネタになってしまいますね。

カレントを出していきましょう。.zshrcを編集して再度読み込みましょう。

~/.zshrc
PROMPT='%~ 🍣'

%~はカレントパスを示します。

image.png
お寿司が今どこにあるかが分かるようになりましたね。

今何時?

お寿司に夢中になって時間を忘れてしまいそうなので右側に時間を出します。

~/.zshrc
RPROMPT='%D{%H:%M:%S}'
PROMPT='%~ 🍣'

RPROMPTは、PROMPTが左側だったのに対して、プロンプトの右側に何を表示するのかを設定する項目になります。
%Dは時間を示し、続く{%H:%M:%S}はフォーマットになります。

image.png
時間が分かるようになりましたね。

ブランチ名も欲しい

一応エンジニアなのでブランチ名も出していきましょう。
ブランチ名の取得は下記のコマンドで取得できます。これを使っていきます。

git rev-parse --abbrev-ref HEAD
~/.zshrc
function git-current-branch {
  local branch_name
  branch_name=`git rev-parse --abbrev-ref HEAD 2> /dev/null`
  if [ -n "$branch_name" ]; then
    echo $branch_name
  fi
}

setopt prompt_subst
RPROMPT='%D{%H:%M:%S}'
PROMPT='%~ `git-current-branch` 🍣'

少し煩雑な処理なのでfunctionにまとめています。
setopt prompt_substは変数展開をしてくれる設定です。

image.png

git管理されているディレクトリではブランチ名が表示されるようになりましたね。

お寿司の位置を固定したい

パスが長くなればなるほど、ブランチ名が長くなればなるほど、
お寿司が右に追いやられていって可哀想なので固定します。
と言っても改行するだけ。

~/.zshrc
function git-current-branch {
  local branch_name
  branch_name=`git rev-parse --abbrev-ref HEAD 2> /dev/null`
  if [ -n "$branch_name" ]; then
    echo $branch_name
  fi
}

setopt prompt_subst
RPROMPT='%D{%H:%M:%S}'
PROMPT='%~ `git-current-branch`
 🍣'

image.png

お寿司の定位置ができました。安心しますね。

色々もっと目立たせたい

お寿司があると言えども白黒だと見難いので色をつけたり太文字にしたりしていきます。
文字色の指定には%F{カラーコード}対象文字%f
背景色の指定には%K{カラーコード}対象文字&k
太字にするには%B対象文字%bを使います。
カラーコードは256 COLORS - CHEAT SHEETから探すと良いかと。

~/.zshrc
function git-current-branch {
  local branch_name
  branch_name=`git rev-parse --abbrev-ref HEAD 2> /dev/null`
  if [ -n "$branch_name" ]; then
    echo "%B%F{29}%f%K{29}%F{15} $branch_name %f%k%b"
  fi
}

setopt prompt_subst
RPROMPT='%F{99}%D{%H:%M:%S}%f'
PROMPT='%F{33}%~%f `git-current-branch`
 🍣'

image.png

カラフルになり、お寿司がなじみましたね。

仕上げ

あとはもう個人の好みで仕上げてしまいましょう。

~/.zshrc
function git-current-branch {
  local branch_name
  branch_name=`git rev-parse --abbrev-ref HEAD 2> /dev/null`
  if [ -n "$branch_name" ]; then
    echo "%B%F{29}◀%f%K{29}%F{15} $branch_name %f%k%b"
  fi
}

setopt prompt_subst
RPROMPT='%F{99}%D{%H:%M:%S}%f'
PROMPT='%F{33}%~%f `git-current-branch`
 🍣  ▶  '

image.png

完成。お寿司食べたい🍣

参考

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3