zsh配置记录

252 阅读1分钟
# git常用命令缩写
alias gl="git log"
alias gps="git push origin"
alias gpl="git pull origin"
alias gb="git branch"
alias gc="git checkout"
alias gcm="git commit -m"
alias gcp="git cherry-pick"
alias grc="git rebase --continue"
alias gplr="git pull origin --rebase"
alias gra="git rebase --abort"
alias grs="git reset --soft"
alias grh="git reset --hard"
alias gcpc="git cherry-pick --continue"
alias gcpa="git cherry-pick --abort"
alias gs="git stash"
alias gsp="git stash pop"
alias gsl="git stash list"

# 项目常用命令缩写
alias run="npm run dev"
alias install="npm install"

# 编辑zsh命令缩写
alias vzsh="vim ~/.zshrc"
alias szsh="source ~/.zshrc"

# 插件命令缩写
alias vp="vsce package"
alias vpb="vsce publish"

# nvm配合.nvmrc文件自动切换项目node版本
export NVM_DIR="$HOME/.config/nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

autoload -U add-zsh-hook
load-nvmrc() {
  local node_version="$(nvm version)"
  local nvmrc_path="$(nvm_find_nvmrc)"

  if [ -n "$nvmrc_path" ]; then
    local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")

    if [ "$nvmrc_node_version" = "N/A" ]; then
      nvm install
    elif [ "$nvmrc_node_version" != "$node_version" ]; then
      nvm use
    fi
  elif [ "$node_version" != "$(nvm version default)" ]; then
    echo "Reverting to nvm default version"
    nvm use default
  fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc