素人がM1のMacでも自己満するTerminal Prompt設定

*この記事は過去の記事をベースにマークダウン記法の練習に作成してます. keetaneblog.hatenablog.com
マークダウンについてはチートシートを見ながら書いてます.

Qiita マークダウン記法 一覧表・チートシート - Qiita

最終的な見た目はこんな感じになります. f:id:keetane:20210127060954p:plain 軽く説明すると,

  • 1行目にDirectory path (+ あればGit Branch),2行目に$
  • Git add前はブランチ名が赤に,commit 前だと黄色になる.
  • anacondaの仮想環境に入ってると先頭に表示(anacondaの デフォ)

つまりこんな感じ.

(env) ~/Document/Directory [branch]
$ コマンド

Gitのbranchとstatusを表示する

こちらのリンクの内容のほぼまんまコピペです. 1箇所コピペするだけでgitブランチ名を常に表示【.zshrc】

下記のscriptを~/.zshrcにコピペして保存します.

# git ブランチ名を色付きで表示させるメソッド
function rprompt-git-current-branch {
  local branch_name st branch_status
 
  if [ ! -e  ".git" ]; then
    # git 管理されていないディレクトリは何も返さない
    return
  fi
  branch_name=`git rev-parse --abbrev-ref HEAD 2> /dev/null`
  st=`git status 2> /dev/null`
  if [[ -n `echo "$st" | grep "^nothing to"` ]]; then
    # 全て commit されてクリーンな状態
    branch_status="%F{green}"
  elif [[ -n `echo "$st" | grep "^Untracked files"` ]]; then
    # git 管理されていないファイルがある状態
    branch_status="%F{red}?"
  elif [[ -n `echo "$st" | grep "^Changes not staged for commit"` ]]; then
    # git add されていないファイルがある状態
    branch_status="%F{red}+"
  elif [[ -n `echo "$st" | grep "^Changes to be committed"` ]]; then
    # git commit されていないファイルがある状態
    branch_status="%F{yellow}!"
  elif [[ -n `echo "$st" | grep "^rebase in progress"` ]]; then
    # コンフリクトが起こった状態
    echo "%F{red}!(no branch)"
    return
  else
    # 上記以外の状態の場合
    branch_status="%F{blue}"
  fi
  # ブランチ名を色付きで表示する
  echo "${branch_status}[$branch_name]"
}
 
# プロンプトが表示されるたびにプロンプト文字列を評価、置換する
setopt prompt_subst
 
# プロンプトの右側にメソッドの結果を表示させる
PROMPT='%F{green}%~ `rprompt-git-current-branch`
$ %f'

違うのは最後の2行だけです. これでBranchの表示も左に寄せてます.
既に使用中のterminalに反映したい時は,下記コマンドを実行します.

$ source ~/.zshrc

Zshの表示部分をDirectory Path + Git branch + $に変更する

とりあえずZshを使えば良いんだろう? - Qiita

こちらを参考にプロンプトの表示結果だけを変えました.
具体的には,こんな感じです.(before >>> after)

before
RPROMPT='`rprompt-git-current-branch`'
>>>
after
PROMPT='%F{green}%~ `rprompt-git-current-branch`
$ %f'

RPROMPTはプロンプトの右側に表示する内容なので,左側のPROMPTに変更しました.
先頭はDirectory Pathになるように%~,続いて`rprompt-git-current-branch`の後に改行する.
改行はマストではないけど,コマンド自体は$の後に新しい行に書く方が視認性が高いと感じます.

Macを新調してからTerminalの表示がうざいなぁと思ってたから,スッキリ整理できてよかったー.