使用 PowerShell 實作類似 Bash 的非旋轉檔名製表符補全

使用 PowerShell 實作類似 Bash 的非旋轉檔名製表符補全

在 Windows 下,使用 PowerShell,是否可以讓檔案名稱建議(使用金鑰Tab)像 Linux 下的 bash 一樣運作?

假設一個目錄包含 3 個目錄:example1exampleexamination

在 Windows 上(預設),如果您鍵入cd exTab,它將自動建議cd .\examination。的後續使用將在、和Tab之間輪換建議。example1exampleexamination

使用 bash(通常在 Linux 下),如果您鍵入cd exTab,它將自動完成,直到檔案名稱開始不同的字元:cd exam。 then的另一種用法Tab顯示哪些目錄可用:

$ cd exam
examination/ example1/    example2/

然後,如果您鍵入pand Tab,它將自動完成為example,依此類推(此處提供example1and之間的選擇example2)。

有沒有辦法讓檔案名稱建議在像這樣的樹狀搜尋中工作,而不是透過名稱進行旋轉?

(我主要對檔案名稱感興趣。Bash 還可以根據檔案類型細化此選擇,例如僅 的目錄cd,這會很好,但有檔案名稱選擇本身就足夠了。)

答案1

預設完成行為是使用命令視窗處理鍵盤輸入的結果。

從 PowerShell v3 開始,ISE 值得考慮作為全職 shell,並且具有現代完成行為(和著色!)。

如果您確實希望在 PowerShell 命令視窗中實現 BASH 風格的補全,請取得PS閱讀線:

https://github.com/lzybkr/PSReadLine

這裡有一個較舊的、功能較少且未維護的項目,也稱為 PSReadline: http://nivot.org/nivot2/post/2012/09/12/Emulated-Bash-GNU-Readline-with-PowerShell-30.aspx http://nivot.org/blog/post/2012/09/12/Emulated-Bash-GNU-Readline-with-PowerShell-30

相關內容