2010-11-23 95 views
0

有沒有什麼辦法可以在windows(cmd.exe)下有適當的tab完成標籤?在Windows下Ant的選項卡完成?

我可以寫出默認目標來列出所有其他目標,但這與您在Linux上獲得的正確選項卡完成不同。

+0

你是說在Linux上輸入「ant 」是否符合構建文件中可用的目標? – sudocode 2011-06-21 12:02:25

+0

是的......我通常會看到開發人員讓目標打印一份所有可用目標的列表,但這顯然不是很好,因爲無論何時添加新目標或目標名稱已更改,都必須記住更新該列表。 – dm76 2011-06-21 13:05:53

回答

1

BASH在內置的complete命令中有一個可定製的完成機制。通過編寫完整的命令腳本,您可以在幾乎任何你能想到的事情上完成命令行補全。螞蟻目標的完成是通過一個名爲complete-ant-cmd.pl的Perl shell腳本完成的,該腳本放在Cygwin的全系統bashrc文件中。

CMD.exe沒有這種機制,它不能擴展到已經內置到其中的內容之外。

正如其他人所提到的,您可以嘗試使用ant -pant --projecthelp命令來列出所有目標及其描述。試試這個build.xml文件:

<project name="test" default="target2" basedir="."> 
    <description> 
     This is a test project. It is to demonstrate the use 
     of the &quot;ant -p&quot; command and show all described 
     targets. The "&quot;" probably won't work, but you can use 
     regular quotes. 
    </description> 

    <target name="target1" 
     description="This is the prime target, but not the default"/> 

    <target name="target2" 
     description="This is the default target but not because I said it here"/> 

    <!-- Target "target3" won't display in "ant -p" because --> 
    <!-- it has no description parameters. Life is tough. --> 

    <target name="target3"/> 

    <target name="target4" 
     description="This is target #4, but there's no target3"/> 
</project> 

輸出將是:

$ ant -p 
Buildfile: /Users/david/build.xml 

    This is a test project. It is to demonstrate the use 
    of the "ant -p" command and show all described 
    targets. The """ probably won't work, but you can use 
    regular quotes. 

Main targets: 

    target1 This is the prime target, but not the default 
    target2 This is the default target but not because I said it here 
    target4 This is target #4, but there's no target3 
Default target: target2 
$ 
1

此功能在Windows上works in the Cygwin bash environment

我一直在使用Cygwin。不知道,並沒有啓用此功能。但我剛纔試了一下在該鏈接描述更新我的個人資料之後:

$ ant t<TAB>est<TAB> 
test test_1 test_2 test_3 
$ ant test 

我不認爲cmd.exe的支持這種customizable command completion

您是否可以使用PowerShell做這樣的事情是一個我無法回答的問題。

順便說一句,「ant -p [rojecthelp]」是在構建文件中打印目標(具有描述屬性集)的典型方法。而不是寫一個默認目標來做到這一點。

+0

「」ant -p「是打印目標的典型方式」從未見過 – dm76 2011-06-21 13:06:39

3

可以在powershell.exe,它的方式比普通的舊CMD更強大很容易地集成爲螞蟻tabcompletion 。可執行程序。

Powershell.exe是Windows 7/8的一部分,但也可以作爲獨立組件安裝在XP中(可以從Microsoft網站下載)。

我使用了https://github.com/peet/posh-ant提供的腳本。該腳本還不完美,但95%的工作相當好。