假设以下是我的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,对其内置插件和工具也不是很熟悉。如果您能提供任何帮助或指导,让我的自动完成功能按预期工作,我将不胜感激。