【发布时间】:2014-05-09 02:07:29
【问题描述】:
我想构建一个类似于 git git <command> [<param1> ...] 的用户界面。到目前为止我想出的是:
function git -d "Description"
switch $argv[1]
case branch
git_branch $argv[2]
case reset
git_reset
end
end
function git_branch -d "Description for branch"
do_something $argv[1]
end
function git_reset -d "Description for reset"
do_something_else
end
它有效,但有几个问题:
1. Fish 没有选择自动完成的可用命令;
2. 如果我在没有参数的情况下运行git,它不会打印出命令列表,也不会为它们提取描述。
在我看来,我正在做的并不是用 fish 构建命令行实用程序的“正确”方式。那么,正确的方法是什么?
【问题讨论】:
-
你要重新实现 Git 吗?!
-
@Biffen 当然不是,我有一组脚本来自动化我的工作流程,我希望所有这些脚本都可以通过相同的命名空间进行访问,因此我可以为不同的项目使用不同的脚本相同的简单名称,如
project_1 sync等等。 -
嗯,我还有一个 git 功能,
git <tab>自动完成 git 子命令。我没有任何特殊的 git 完成。 -
@glennjackman fish 捆绑了 git 自动完成功能(请参阅 github.com/fish-shell/fish-shell/blob/master/share/completions/… ),但我的问题与 git 本身无关。
-
我明白这一点。我只是说你和我在做基本相同的事情,但结果不同。等等,我看到了区别......
标签: fish