自分の Mac で使っている ~/.zshrc の設定をベースに、 Terminal の表示を整える方法。テーマや外部ツールなしで、 「ディレクトリ・Gitブランチ・日時・プロンプト文字」を出す。

この設定で変わるところ

  • コマンド入力の前に1行空けて見やすくする
  • 左側にカレントディレクトリを表示
  • 右側に Git ブランチ名を表示(Git管理下のみ)
  • 入力プロンプトを好きな文字列に変更
  • 右側に日時を表示

手順

まずはバックアップしてから ~/.zshrc を編集する。

# 1) まずバックアップ
cp ~/.zshrc ~/.zshrc.bak

# 2) 編集
nano ~/.zshrc
# (または) code ~/.zshrc

# 3) 反映
source ~/.zshrc

設定例(そのまま貼り付け可)

autoload -Uz vcs_info
zstyle ':vcs_info:*' formats '[%b]'
zstyle ':vcs_info:*' actionformats '[%b|%a]'

precmd () {
  # 1行あける
  print

  # 左: カレントディレクトリ
  local left=' %{e[38;5;2m%}(%~)%{e[m%}'

  # 右: Gitブランチ
  vcs_info
  local right="%{e[38;5;32m%}${vcs_info_msg_0_}%{e[m%}"

  # 左右の間をスペースで埋める
  local invisible='%([BSUbfksu]|([FK]|){*})'
  local leftwidth=${#${(S%%)left//$~invisible/}}
  local rightwidth=${#${(S%%)right//$~invisible/}}
  local padwidth=$(($COLUMNS - ($leftwidth + $rightwidth) % $COLUMNS))

  print -P $left${(r:$padwidth:: :)}$right
}

# 入力プロンプト
PROMPT="(⁎'~') < "

# 右側に日時を表示
RPROMPT=$'%{e[38;5;251m%}%D{%b/%d} %*%{e[m%}'

# 1秒ごとにプロンプト再描画(RPROMPT更新)
TMOUT=1
TRAPALRM() {
  zle reset-prompt
}

どこをいじると見た目が変わるか

  • left の中身: 左側の表示(今はディレクトリ)
  • right の中身: 右側の表示(今はブランチ)
  • PROMPT: 入力行の先頭文字列
  • RPROMPT: 右側の表示(今は日時)

補足

  • Git ブランチ表示は autoload -Uz vcs_infovcs_info がポイント。
  • 色は ANSI エスケープ(\\e[38;5;...m)で指定している。
  • もし表示が崩れたら、~/.zshrc.bak を戻せば復旧できる。