水銀有一個非常不錯的功能,它可以讓所需要的是在命令行上明確一個只有類型,如:Hg代碼中的執行命令是否完成?
hg pus
推,或:
hg comm
犯。
我很想看到Git和Maven這樣的功能,這讓我好奇它是如何完成的。我在代碼中進行了拖網,但沒有多少運氣,我發現與bash_completion有關,但不適用於Windows。
哪裏在汞code是這個命令完成實施?
水銀有一個非常不錯的功能,它可以讓所需要的是在命令行上明確一個只有類型,如:Hg代碼中的執行命令是否完成?
hg pus
推,或:
hg comm
犯。
我很想看到Git和Maven這樣的功能,這讓我好奇它是如何完成的。我在代碼中進行了拖網,但沒有多少運氣,我發現與bash_completion有關,但不適用於Windows。
哪裏在汞code是這個命令完成實施?
對命令執行此操作的代碼是mercurial.cmdutil中的findpossible
和findcmd
函數。他們搜索已知的命令並找到以鍵入的內容開始的命令,因此hg pus
找到push
命令。
對於命令行選項(標誌),正常getopt module可讓您自動縮短(例如)hg log --patch
到hg log --pat
。
是的,就是這樣,謝謝! – 2013-04-09 14:23:59
在Linux上,這是由bash_completion
做在我的系統汞的配置是/etc/bash_completion.d/mercurial
我認爲你沒有正確理解他的問題。他不是在詢問命令的完成情況,他是關於Mercurial將'hg pus'解釋爲'hg push'的能力。 – 2013-04-09 10:51:09
我認爲這是在mercurial/cmdutil.py
並做它的方法被稱爲findpossible
。
In [contrib/bash_completion](http://selenic.com/hg/file/tip/contrib/bash_completion)。 – 2013-04-09 09:34:55