2013-05-31 40 views

回答

0

很可能zsh仍在嘗試在您的情況下完成文件完成,它只是將--arg=作爲文件名的起始部分,導致它找不到任何匹配項。既然關於命令如何解釋它們的參數沒有任何通用規則,最安全的選擇是shell不對這些參數做出任何假設。

如果您使用空格而不是=符號(例如program_name --arg /some/path/goes/here),許多使用該類型語法的命令的作用將相同。因爲這將是一個單獨的參數,shell應該能夠完成沒有問題的文件完成。

根據您配置zsh的方式,它也可能使用setopt MAGIC_EQUAL_SUBST。我通常會設置該選項並獲取您正在查找的行爲,但是如果我取消選中該選項,則會獲得您當前遇到的行爲。但是,如果我使用zsh -f跳過加載我的配置只是啓用該選項是不夠的,所以顯然我的配置中有其他東西是必要的,可能只是完成系統的啓用,您可能已經完成了。可能會出現這種情況,導致不良行爲,但在我使用帶有該選項集的zsh的許多年中,我還沒遇到任何問題。

一個更復雜的選項是爲該命令編寫一個完成函數,它告訴zsh該選項將文件名作爲參數。

相關問題