当使用 OSX 的 git 时,在我修改文件后我可以简单地做 git commit <tab>
,这将自动将文件名补全为已修改的文件名。但是,如果我从自制软件安装更新版本的 git 并使用它,该功能将不再有效(意味着我按 <tab>
它只是“询问”我想在哪个文件上执行此操作,甚至包括那些没有变化)。
任何人都可以阐明原因以及如何解决这个问题吗?我更喜欢使用自制软件的 git,因为它是最新的。
我的 shell 是 zsh,没有安装 bash-completion
或 zsh-completions
有效(即使按照自制程序的安装后说明进行操作)。
此外,在使用 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
以使自制软件的 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/
目录中的完成项需要额外导出。
关于macos - Homebrew 的 `git` 未使用完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14970728/