Mercurial有一个非常好的功能,它允许用户只键入命令行中明确需要的内容,例如:
hg pus
推送,或:
hg comm
提交。
我很想在Git和Maven这样的功能中看到这个功能,让我对它是如何完成感到好奇。我有一个拖网通过代码,但没有太多的运气,我发现与bash_completion有关,但不是为了Windows。
Hg code中的哪个位置已完成此命令的完成?
答案 0 :(得分:3)
为命令执行此操作的代码是mercurial.cmdutil中的findpossible
和findcmd
函数。他们搜索已知命令并找到以您键入的内容开头的命令,因此hg pus
找到push
命令。
对于命令行选项(标记),正常getopt module可让您自动缩短hg log --patch
到hg log --pat
。
答案 1 :(得分:2)
我认为它位于mercurial/cmdutil.py
中,执行此操作的方法称为findpossible
。
答案 2 :(得分:0)
在Linux上,这是由bash_completion
在我的系统上,hg的配置位于/etc/bash_completion.d/mercurial