【发布时间】:2014-07-07 05:59:15
【问题描述】:
标签不完整的别名
我有一堆别名,例如 j 用于 jobs (here),以及“别名命令”例如 gs 用于 git status (here)。
我希望他们使用制表符完成他们正在使用的别名。所以j -<TAB> 会像jobs -<TAB> 一样完成并推荐--command、--pid 等等。
Idea1:从别名命令中提取定义:
如果没有内置的东西告诉它将j 视为jobs,那么也许有一种方法可以动态地做到这一点?基于this comment和the docs,似乎我应该能够执行以下操作:
complete --command j (complete --definitions-for jobs)
对于一些虚构的标志“--definitions-for”,它只输出为获取当前定义而放入的任何标志(我发现一个函数complete_print 非常接近我想要的)
想法2:换掉命令行:
虽然这可能适用于 j->jobs,但我开始环顾四周,发现 git status completions。看起来可能很难(除非我可以在检查 -n 条件之前将其展开)。
嗯,有一个 --do-complete 标志,上面写着“打印指定命令行的所有完成”也许是这样的:
complete -c gs --do-complete "git status -"
不过,我实际上不知道如何使用 --do-complete 来做任何事情:/
【问题讨论】: