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のコメントが述べているように、homebrewのbash-completionを動作させるには、~/.bash_profile
に以下を追加する必要があります:
if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi
上記は、bash完了式をインストールする際の注意事項に記載されています。
注: 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/
ディレクトリに含まれる可能性のあるその他の補完には、追加のエクスポートが必要です。
これは、ターミナルを再起動することなく、OSX上で動作するgitタブの補完を取得します。
curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash && echo "source ~/.git-completion.bash" >> ~/.bash_profile && source ~/.bash_profile
何らかの理由で$(brew --prefix)/etc/bash_completion
のファイルが見つからなかったため、@ Graham Perksの正解が機能しませんでした
私の場合の修正は次のとおりです:
brew unlink bash-completion
brew link bash-completion
他の誰かが私の愚かな間違いを犯した場合は、brew install git
を試してください。 Xcodeに付属のgit
を使用していましたが、オートコンプリートを取得するためにHomebrewのgitをインストールしたことがないことに気付きませんでした。
$(brew --prefix)/etc/bash_completion
が実行されたときにPermission denied
を返すことを理解することで問題を解決しました。簡単な後:
chmod +x $(brew --prefix)/etc/bash_completion
すべてが正常に動作しています。 Homebrewがインストール時にbash_completion
ファイルを実行可能にしないのはなぜだろうかと思っています。
私は同じ問題を抱えていて、今朝この投稿を見つけました。 brew update
でbrewを更新し、brew reinstall git
でgitを再インストールすることで問題を修正しました。
その後、自作のリンクプロセスをブロックしている別のファイルが通知されました。私の場合は/usr/local/share/zsh/site-functions/git-completion.bash
でした。ファイルを削除してbrew link git
を実行すると、問題が解決しました。それは私たちがつまずいたレシピのバージョンが悪いだけだと思います。
実用的なソリューションを見つけました。それはごく最近のもので(16時間前に作成され、2時間前にコミットされました)、 homebrewから直接 になります。
brew install git --without-completions
試しただけで、最終的に意図したとおりに機能します。
ステップ1:自動補完スクリプトをダウンロードします。
cd ~
curl -O https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
ステップ2:.bash_profileおよび.bashrcを更新する
echo "source ~/git-completion.bash" >> .bash_profile
経由 https://www.anintegratedworld.com/git-tab-autocomplete-on-osx-10-11-el-capitan/
上記が機能しない場合は、 https://github.com/bobthecow/git-flow-completion/wiki/Install-Bash-git-completion を試してください
$BASH_VERSION
<4.1の場合、たとえば3.2.57(1)-release
の場合は、次のようにします。
brew install bash-completion
# In ~/.bash_profile :
if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi
ただし、brew install bash
を取得してバージョン4.4.12(1)-release
を取得した場合は、次の場所でより優れた完全な補完を使用できます。
brew install bash-completion@2
# In ~/.bash_profile:
[ -f "$(brew --prefix)/share/bash-completion/bash_completion" ] \
&& . "$(brew --prefix)/share/bash-completion/bash_completion"
一部のパッケージ(brew、docker、tmux)では、$(brew --prefix)/etc/bash_completion.d/
にいくつかの補完が追加されるため、以下を追加できます。
for completion in "$(brew --prefix)/etc/bash_completion.d/"*
do
. $completion
done
最後に、何らかの理由でgitをインストールした方法でgit完了スクリプトを追加できなかった場合:
[[ -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
上記で取得して追加できます。
私にとっては、
source $(brew --prefix)/etc/bash_completion
これを機能させるには、.bashrc
(.bash_profileではありません)に入れます。
「.bash_profileはログインシェルに対して実行され、.bashrcはインタラクティブな非ログインシェルに対して実行されます」 。bash_profileと.bashrcの違いは何ですか? MacOS Sierraはそうではないようです'.bash_profile
のみ、新しいターミナルウィンドウを開くときに.bashrc
を実行します。
更新を有効にするには再起動/ログアウトする必要があるため、_bash_profileには入れません。
これはMojave(OSX 10.14.1)で機能しました:
brew install bash-completion
次に、〜/ .bash_profileに次の行を追加します。
[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion
これは古い投稿であることは知っていますが、追加のパッケージをインストールする必要はありません。
Homebrewは、必要なものがすべて揃ったディレクトリがあることを通知します。
Bashを使用している場合は、.bash_profile
に次の行を追加するだけです。
source /usr/local/etc/bash_completion.d/git-completion.bash
すでにbash-completionのbrewがインストールされている場合。 git完了スクリプトがインストールされておらず、そのためのタップが見つかりませんでした。
だから私は手動で追加しました:
curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o $(brew --prefix)/etc/bash_completion.d/git
ファイルが機能するには、ファイルの名前を変更し、拡張子を削除する必要があることに注意してください。
完了またはgitがインストールされていない場合は、受け入れられた回答にインストールしてください。
brew install git bash-completion
Lionでreadlineの代わりにlibeditが使用されていることと関係があるかもしれません。
Gitの前にreadlineをインストールしてください。
brew install readline