美文网首页Git
Mac bash terminal 配置代码高亮 Git状态显示

Mac bash terminal 配置代码高亮 Git状态显示

作者: PengboGai | 来源:发表于2018-04-03 20:02 被阅读0次

    git complition ~/.git-completion.bash 见

    https://github.com/git/git/blob/master/contrib/completion/git-completion.bash

    alias ll='ls -la'
    
    if [ -f ~/.git-completion.bash ]; then 
    . ~/.git-completion.bash 
    fi
    #Git branch status
    function git_status {
      local unknown untracked stash clean ahead behind staged dirty diverged
      unknown='0;34' # blue
      untracked='0;32' # green
      stash='0;32' # green
      clean='0;32' # green
      ahead='0;33' # yellow
      behind='0;33' # yellow
      staged='0;96' # cyan
      dirty='0;31' # red
      diverged='0;31' # red
    
      if [[ $TERM = *256color ]]; then
        unknown='38;5;20' # dark blue
        untracked='38;5;76' # mid lime-green
        stash='38;5;76' # mid lime-green
        clean='38;5;82' # brighter green
        ahead='38;5;226' # bright yellow
        behind='38;5;142' # darker yellow-orange
        staged='38;5;214' # orangey yellow
        dirty='38;5;202' # orange
        diverged='38;5;196' # red
      fi
    
      branch=$(git rev-parse --abbrev-ref HEAD 2>/dev/null)
      if [[ -n "$branch" ]]; then
        if [[ "$branch" == 'HEAD' ]]; then
          branch=$(git rev-parse --short HEAD 2>/dev/null)
        fi
        git_status=$(git status 2> /dev/null)
        # If nothing changes the color, we can spot unhandled cases.
        color=$unknown
        if [[ $git_status =~ 'Untracked files' ]]; then
          color=$untracked
          branch="${branch}+"
        fi
        if git stash show &>/dev/null; then
          color=$stash
          branch="${branch}*"
        fi
        if [[ $git_status =~ 'working directory clean' ]]; then
          color=$clean
        fi
        if [[ $git_status =~ 'Your branch is ahead' ]]; then
          color=$ahead
          branch="${branch}"
        fi
        if [[ $git_status =~ 'Your branch is behind' ]]; then
          color=$behind
          branch="${branch}"
        fi
        if [[ $git_status =~ 'Changes to be committed' ]]; then
          color=$staged
        fi
        if [[ $git_status =~ 'Changed but not updated' ||
              $git_status =~ 'Changes not staged'      ||
              $git_status =~ 'Unmerged paths' ]]; then
          color=$dirty
        fi
        if [[ $git_status =~ 'Your branch'.+diverged ]]; then
          color=$diverged
          branch="${branch}!"
        fi
        printf "\033[%sm%s\033[0m" "$color" "($branch)"
      fi
      return 0
    }
    
    #bles colorin the terminal bash shell export
    export CLICOLOR=1
    
    #sets up thecolor scheme for list export
    export LSCOLORS=gxfxcxdxbxegedabagacad
    
    #sets up theprompt color (currently a green similar to linux terminal)
    export PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;36m\]\W\[\033[01;31m\]$(git_status)\[\033[0m\]\$ '
    
    #enables colorfor iTerm
    export TERM=xterm-256color
    

    相关文章

      网友评论

        本文标题:Mac bash terminal 配置代码高亮 Git状态显示

        本文链接:https://www.haomeiwen.com/subject/lnichftx.html