在 zsh 中使用 git 添加文件时自动完成文件路径或显示建议

在 zsh 中使用 git 添加文件时自动完成文件路径或显示建议

假设以下是我的git status命令的输出。

On branch LG-201
Your branch is up to date with 'origin/LG-201'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
    modified:   src/server/http/index.ts
    modified:   src/server/http/routes.ts

Untracked files:
  (use "git add <file>..." to include in what will be committed)
    .vscode/

no changes added to commit (use "git add" and/or "git commit -a")

当我需要添加这些未暂存的文件时,我目前必须输入git add然后手动复制和粘贴文件路径。

我的目标是实现一个自动完成功能,当我输入git add或其等效别名ga时,我会自动收到已修改文件的建议。由于我使用的是 Zsh,所以我想使用箭头键选择建议的选项之一。

我尝试使用类似Facebook 路径选择器compctl。我还向我的添加了以下函数.zshrc

_autocomplete_unstaged_paths() {
  reply=($(git status --porcelain | grep '^.[^?AD] ' | cut -c4-))
}

compctl -K _autocomplete_unstaged_paths

但是,我还没有实现所需的自动完成行为。我刚开始使用 Zsh,对其内置插件和工具也不是很熟悉。如果您能提供任何帮助或指导,让我的自动完成功能按预期工作,我将不胜感激。

相关内容