⌨️

Macのターミナルをカスタマイズする

に公開
brew install git fzf
$(brew --prefix)/opt/fzf/install --key-bindings --completion --no-update-rc
vi ~/.zshrc

下記の内容を書き込む

.zshrc
# プロンプトの表示設定
autoload -Uz vcs_info

precmd() {
  vcs_info
  if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
    if [[ -n $(git status --porcelain 2>/dev/null) ]]; then
      VCS_MODIFIED="*"
    else
      VCS_MODIFIED=""
    fi
  else
    VCS_MODIFIED=""
  fi
}

setopt prompt_subst
zstyle ':vcs_info:git:*' formats '[%b]'
zstyle ':vcs_info:git:*' actionformats '[%b|%a]'

PROMPT=$'%F{cyan}%D{%Y-%m-%d %H:%M:%S}%f %F{green}%n@%m%f:%F{blue}%~%f ${vcs_info_msg_0_}${VCS_MODIFIED}\n%# '

# 履歴設定
HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=10000

setopt INC_APPEND_HISTORY     # 実行ごとに履歴保存
setopt EXTENDED_HISTORY       # 実行時間なども保存
setopt SHARE_HISTORY          # 複数のzsh間で履歴共有

# fzf(Fuzzy Finder)
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh

# エイリアス・関数
alias gb="git branch -a | grep -v HEAD | sed 's#remotes/##' | fzf | sed 's#origin/##' | xargs -I {} git switch {} || git switch -c {} origin/{}"

alias gbl="git branch | sed 's/..//' | fzf | xargs git switch"

gbr() {
  local branch
  branch=$(git branch -r | grep -v HEAD | fzf | sed 's#^ *origin/##')
  if [ -n "$branch" ]; then
    git switch -c "$branch" "origin/$branch"
  fi
}

gbrm() {
  local branch
  branch=$(git branch | sed 's/..//' | fzf)
  if [ -n "$branch" ]; then
    git branch -d "$branch"
  fi
}

alias gcm='git commit -m'

alias gs='git status'

alias drm='docker stop $(docker ps -aq) && docker rm $(docker ps -aq) && docker rmi $(docker images -q)'

dcup() {
  local service="$1"
  if [ -z "$service" ]; then
    service="app"
  fi
  docker-compose up --build -d && docker-compose exec "$service" zsh
}

source ~/.zshrc

下記の見た目になります

Discussion