有沒有什麼辦法可以在windows(cmd.exe)下有適當的tab完成標籤?在Windows下Ant的選項卡完成?
我可以寫出默認目標來列出所有其他目標,但這與您在Linux上獲得的正確選項卡完成不同。
有沒有什麼辦法可以在windows(cmd.exe)下有適當的tab完成標籤?在Windows下Ant的選項卡完成?
我可以寫出默認目標來列出所有其他目標,但這與您在Linux上獲得的正確選項卡完成不同。
BASH在內置的complete
命令中有一個可定製的完成機制。通過編寫完整的命令腳本,您可以在幾乎任何你能想到的事情上完成命令行補全。螞蟻目標的完成是通過一個名爲complete-ant-cmd.pl
的Perl shell腳本完成的,該腳本放在Cygwin的全系統bashrc文件中。
CMD.exe沒有這種機制,它不能擴展到已經內置到其中的內容之外。
正如其他人所提到的,您可以嘗試使用ant -p
或ant --projecthelp
命令來列出所有目標及其描述。試試這個build.xml
文件:
<project name="test" default="target2" basedir=".">
<description>
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.
</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
$
此功能在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]」是在構建文件中打印目標(具有描述屬性集)的典型方法。而不是寫一個默認目標來做到這一點。
「」ant -p「是打印目標的典型方式」從未見過 – dm76 2011-06-21 13:06:39
可以在powershell.exe,它的方式比普通的舊CMD更強大很容易地集成爲螞蟻tabcompletion 。可執行程序。
Powershell.exe是Windows 7/8的一部分,但也可以作爲獨立組件安裝在XP中(可以從Microsoft網站下載)。
我使用了https://github.com/peet/posh-ant提供的腳本。該腳本還不完美,但95%的工作相當好。
你是說在Linux上輸入「ant」是否符合構建文件中可用的目標? –
sudocode
2011-06-21 12:02:25
是的......我通常會看到開發人員讓目標打印一份所有可用目標的列表,但這顯然不是很好,因爲無論何時添加新目標或目標名稱已更改,都必須記住更新該列表。 – dm76 2011-06-21 13:05:53