git

git命令补全

920 发布: 2017/12/7 12:27 本文总阅读量

zsh

创建/补充.zshrc

2023-08-03补充

  • .zshrc内贴入以下代码
# tab补全
autoload -Uz compinit && compinit
# 忽略大小写
zstyle ':completion:*' matcher-list 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*'

# 上下匹配历史
bindkey '\e[A' history-search-backward
bindkey '\e[B' history-search-forward
  • 命令行执行
source ~/.zshrc
  • 分支显示
# 高亮
source /opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

# 显示git分支
#function parse_git_branch() {
#    git branch 2> /dev/null | sed -n -e 's/^\* \(.*\)/ [\1]/p'
#}
function parse_git_branch() {
    local branch_name=$(git branch 2> /dev/null | sed -n -e 's/^\* \(.*\)/ \1/p')
    local dirty_status=''

    if [[ -d .git && -n $(git status --porcelain) ]]; then
        dirty_status='*'
    fi

    echo "$branch_name$dirty_status"
}
 setopt PROMPT_SUBST
# export PROMPT='%F{grey}%n%f %F{cyan}%~%f %F{green}$(parse_git_branch)%f %F{normal}$%f '
 export PROMPT='%F{cyan}%~%f%F{green}$(parse_git_branch)%f%F{normal}%f %# '

# tab补全
autoload -Uz compinit && compinit

# 自动补全样式、忽略大小写
zstyle ':completion:*' matcher-list 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*'

# 上下匹配历史
bindkey '\e[A' history-search-backward
bindkey '\e[B' history-search-forward



# close proxy
function proxyOff(){
    unset http_proxy
    unset https_proxy
    echo -e "已关闭代理"
}
# open proxy
function proxyOn() {
    export http_proxy="http://127.0.0.1:7890"
    export all_proxy="socks5://127.0.0.1:7890"
    (($+1)) && {
       export http_proxy="http://127.0.0.1:$1"
       export all_proxy="socks5://127.0.0.1:$1"
    }
    export https_proxy=$http_proxy
    echo -e "已开启代理:\nhttp_proxy=$http_proxy\nhttps_proxy=$https_proxy"
}

bash

安装bash-completion
brew install bash-completion
查看
brew info bash-completion
输出
==> Caveats 
Add the following lines to your ~/.bash_profile: 

if [ -f $(brew --prefix)/etc/bash_completion ]; then . $(brew --prefix)/etc/bash_completion fi 

或者

if [ -f $(brew --prefix)/etc/bash_completion ]; then source $(brew --prefix)/etc/bash_completion fi

这里 . 或者 source 用于在当前 shell 中执行指定的脚本文件

Homebrew's own bash completion script has been installed to /usr/local/etc/bash_completion.d

if…then…那一句添加到~/.bash_profile(如果没有该文件,新建一个)重启终端,以上为安装bash-completion部分。

拷贝文件、设置路径

访问

找到contrib/completion/目录下的git-completion.bash ,然后点击编辑,拷贝其内容,复制到文本文件,保存为 git-completion.bash 文件 然后将文件用命令拷贝到~/目录下

cp xxx/git-completion.bash ~/.git-completion.bash

xxx 为文件所在目录,注意拷贝后的文件名称为 .git-completion.bash

~/.bashrc文件(该目录下如果没有,新建一个)中添加下边的内容

source ~/.git-completion.bash
启动: 终端输入
source ~/.git-completion.bash

将下面这句话 添加到~/.bash_profile

if [ -f ~/.git-completion.bash ]; then . ~/.git-completion.bash fi

如果不添加每次必须执行

source ~/.git-completion.bash