macos - Homebrew 的 `git` 未使用完成

标签 macos git autocomplete zsh

当使用 OSX 的 git 时,在我修改文件后我可以简单地做 git commit <tab> ,这将自动将文件名补全为已修改的文件名。但是,如果我从自制软件安装更新版本的 git 并使用它,该功能将不再有效(意味着我按 <tab> 它只是“询问”我想在哪个文件上执行此操作,甚至包括那些没有变化)。

任何人都可以阐明原因以及如何解决这个问题吗?我更喜欢使用自制软件的 git,因为它是最新的。

我的 shell 是 zsh,没有安装 bash-completionzsh-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/

相关文章:

emacs - 是否可以让语义(emacs)自动访问所有文件?

macos - GameScene 类中必需的 init 方法

javascript - Linux 和 macOS 上的 HTML 选择问题

git svn https 认证

java - 如何在 Struts2 中为选择(选择事件)提供单独的操作(在自动完成文本框中使用)

java - Java 的 Vim omnicompletion

ios - 通过 AVFoundation 进行 RTSP 直播?

macos - 终端无法在运行 OSX 的 Aptana IDE 中工作

javascript - 跨存储库共享 react native 组件

git-stash 正在移动我的主分支