はじめに
環境
-
macOS Monterey(12.6)
zshrcの内容
# 環境変数
export LANG=ja_JP.UTF-8
## 色を使用出来るようにする
autoload -Uz colors
colors
## ターミナルの操作感をviチックに変更
bindkey -v
## 補完機能を有効にする
## https://git-scm.com/book/en/v2/Appendix-A%3A-Git-in-Other-Environments-Git-in-Zsh
autoload -Uz compinit && compinit
## タブ補完時に大文字小文字を区別しない
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
## Icebergのthemeを反映するためにlsコマンドを自動でls -Gの挙動にする
export CLICOLOR=1
## エイリアス
alias ll='ls -l'
alias tree='tree -a -I "\.DS_Store|\.git|node_modules" -N'
alias f="fvm flutter"
alias d="fvm dart"
## プロンプトのカスタマイズ
## https://dev.macha795.com/zsh-prompt-customize/
function left-prompt {
name_t='179m%}' # user name text clolr
name_b='000m%}' # user name background color
path_t='255m%}' # path text clolr
path_b='031m%}' # path background color
arrow='087m%}' # arrow color
text_color='%{\e[38;5;' # set text color
back_color='%{\e[30;48;5;' # set background color
reset='%{\e[0m%}' # reset
sharp="\uE0B0" # triangle
user="${back_color}${name_b}${text_color}${name_t}"
dir="${back_color}${path_b}${text_color}${path_t}"
echo "${user}%n%#@%m${back_color}${path_b}${text_color}${name_b}${sharp} ${dir}%~${reset}${text_color}${path_b}${sharp}${reset}\n${text_color}${arrow}> ${reset}"
}
PROMPT=`left-prompt`
# コマンドの実行ごとに改行
function precmd() {
# Print a newline before the prompt, unless it's the
# first prompt in the process.
if [ -z "$NEW_LINE_BEFORE_PROMPT" ]; then
NEW_LINE_BEFORE_PROMPT=1
elif [ "$NEW_LINE_BEFORE_PROMPT" -eq 1 ]; then
echo ""
fi
}
# git ブランチ名を色付きで表示させるメソッド
function rprompt-git-current-branch {
local branch_name st branch_status
branch='\ue0a0'
color='%{\e[38;5;' # 文字色を設定
green='114m%}'
red='001m%}'
yellow='227m%}'
blue='033m%}'
reset='%{\e[0m%}' # reset
color='%{\e[38;5;' # 文字色を設定
green='114m%}'
# ブランチマーク
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="${color}${green}${branch}"
elif [[ -n `echo "$st" | grep "^Untracked files"` ]]; then
# git 管理されていないファイルがある状態
branch_status="${color}${red}${branch}?"
elif [[ -n `echo "$st" | grep "^Changes not staged for commit"` ]]; then
# git add されていないファイルがある状態
branch_status="${color}${red}${branch}+"
elif [[ -n `echo "$st" | grep "^Changes to be committed"` ]]; then
# git commit されていないファイルがある状態
branch_status="${color}${yellow}${branch}!"
elif [[ -n `echo "$st" | grep "^rebase in progress"` ]]; then
# コンフリクトが起こった状態
echo "${color}${red}${branch}!(no branch)${reset}"
return
else
# 上記以外の状態の場合
branch_status="${color}${blue}${branch}"
fi
# ブランチ名を色付きで表示する
echo "${branch_status}$branch_name${reset}"
}
# プロンプトが表示されるたびにプロンプト文字列を評価、置換する
setopt prompt_subst
# プロンプトの右側にメソッドの結果を表示させる
RPROMPT='`rprompt-git-current-branch`'
# The next line updates PATH for flutter.
export PATH="$PATH":"$HOME/fvm/default/bin"
export PATH="$PATH":"$HOME/.pub-cache/bin"