Homebrew’s `git` not using completion

后端 未结 18 2036
盖世英雄少女心
盖世英雄少女心 2020-12-22 16:25

When using OSX’s git, after I modify a file I can simply do git commit , and that’ll auto complete the file’s name to the one that was modified. Howe

18条回答
  •  悲&欢浪女
    2020-12-22 16:42

    If you have $BASH_VERSION < 4.1, eg 3.2.57(1)-release then go ahead with:

    brew install bash-completion
    # In ~/.bash_profile :
    if [ -f $(brew --prefix)/etc/bash_completion ]; then
        . $(brew --prefix)/etc/bash_completion
    fi
    

    However if you've brew install bash to get version 4.4.12(1)-release you can use the better and more complete completions in:

    brew install bash-completion@2
    # In ~/.bash_profile:
    [ -f "$(brew --prefix)/share/bash-completion/bash_completion" ] \
    && . "$(brew --prefix)/share/bash-completion/bash_completion"
    

    Note that some packages (brew, docker, tmux) will still put some completions into $(brew --prefix)/etc/bash_completion.d/ so you might add:

    for completion in "$(brew --prefix)/etc/bash_completion.d/"*
    do
        . $completion
    done
    

    Finally you should be able to add the git completion script if for some reason the way you installed git did not add it to either of those:

    [[ -f $(brew --prefix)/etc/bash_completion.d/git \
    || -f $(brew --prefix)/share/bash-completion/completions/git ]] \
    || curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash \
        -o $(brew --prefix)/etc/bash_completion.d/git
    

    You can get and add it with the above.

提交回复
热议问题