1. ホーム
  2. macos

[解決済み] Homebrewの`git`で補完が使えない

2022-04-25 06:13:57

質問

OSXのgitを使用しているとき、ファイルを修正した後、単純に次のようにすることができます。 git commit <tab> そうすると、ファイル名が変更されたものに自動補完されるんだ。しかし、homebrewから新しいバージョンのgitをインストールして使用すると、この機能は動作しなくなります。 <tab> と聞かれるだけで、何の変更もないファイルも含めて、どのファイルにするか聞かれます)。

どなたか、その理由と解決方法を教えていただけませんか?homebrewのgitの方が最新なので、そちらを使いたいと思っています。

私のシェルはzshですが bash-completion または zsh-completions が動作しました(homebrewのインストール後の指示に従った後でも)。

また、homebrew で git をインストールした後、次のように表示されます。

Bash completion has been installed to: /usr/local/etc/bash_completion.d
zsh completion has been installed to: /usr/local/share/zsh/site-functions

では、そのうちの一つを使えばいいのでは?

どのように解決するのですか?

探しているのは

brew install git bash-completion

warpcさんのコメントにあるように、以下のように ~/.bash_profile を使えば、homebrewのbash-completionが動作するようになります。

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

上記は、bash-completion式をインストールする際の注意事項にも記載されています。


Bash v4 以降を使用している場合 ( brew install bash を使用する必要があります。 brew install bash-completion@2 タブ補完を有効にするには、次のように ~/.bash_profile 注意事項に記載されているように

export BASH_COMPLETION_COMPAT_DIR="/usr/local/etc/bash_completion.d"
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"

この追加エクスポートは、git、docker、youtube-dl、およびその他の補完を行うために必要で、これらは $(brew --prefix)/etc/bash_completion.d/ ディレクトリを作成します。