在 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 还比较陌生,而且对其内置插件和工具也不是很熟悉。对于如何使此自动完成功能按预期工作的任何帮助或指导,我将不胜感激。

相关内容