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