我在 Ubuntu 上运行 Fish shell (3.6.0)。假设我正在尝试跑步git add foo/bar.txt
。我输入:
git add foo
然后我按tab。现在外壳冻结了几秒钟。即使按退格键也无济于事。
我怎样才能解决这个问题?我可以禁用 Git 的文件名自动完成功能吗?这种缓慢似乎只发生在我尝试为 git 命令指定文件时。
答案1
您可以禁用 Fish 用于 git 的特殊自动完成逻辑,回退到默认的自动完成行为。为此,请创建一个空文件,如下所示:
echo -n > ~/.config/fish/completions/git.fish
现在,如果您按下tab之后git add foo/
,它会建议该目录中的所有文件。它不区分干净文件和具有未提交更改的文件。
我不知道如何在不禁用特定 git 功能的情况下解决速度缓慢的问题。
答案2
如果存在大量未跟踪的文件(例如node_modules
未被 git 忽略的文件夹),则可以解释这种确切的行为。在干净的工作目录中尝试git add
制表符补全,看看是否仍然缓慢。