
我正在尋找與 bash 函數等效的complete
函數,其中列出了某些文本的所有可能的補全。基本上給了我如果我反覆點擊選項卡會得到的所有選項。我知道有像 powertab 這樣奇怪的東西,但我需要一種方法將它們作為函數的一部分。
我想要完成的是在運行啞 shell 的較差進程中啟用製表符補全。正常的製表符補全不可用,因為我正在從標準輸入/標準輸出發送和接收。我想要一個可以呼叫的函數,它可以為我提供某些文字的所有補全,因為否則我就沒有什麼可做的了。
答案1
眾所周知,所有作業系統、語言、腳本工具都有其優點和缺點。
不應該期望你習慣或想要的東西會出現在你下一個使用的東西中。如果 X 或 Y 不存在,則表示您需要 3rdP 附加元件,或者您必須自己編寫它。
您可以設定 PowerShell 控制台主機和 ISE 進行許多操作,其他所有操作都需要編寫您自己的程式碼。了解鍵盤快速鍵PowerShell 控制台主機、ISE和對於 VSCode。
PowerShell 中沒有「完整」的開關、cmdlet 等。若要在 PowerShell 控制台主機中取得您想要的內容,請鍵入 cmdlet 名稱、空白、破折號,然後按 CRTL+空白鍵。
Get-ChildItem -[CRTL+Spacebar]
在 ISE 和 VSCode 的編輯器窗格中,有動態彈出的 IntelliSense。在 ISE 和 VSCode 的控制台中,可以使用相同的鍵盤組合。
就這個用例而言...
「我想要完成的是在運行啞 shell 的低階進程中啟用製表符補全。正常的製表符補全不可用,因為我正在從標準輸入/標準輸出發送和接收。我想要一個可以呼叫的函數,它可以為我提供某些文字的所有補全,因為否則我就沒有什麼可做的了。
....您必須使用 PowerShell 的可用語言功能自行編寫程式碼,例如:
或使用 MS PowershellGalery.com 中存在的模組插件
Find-Module -Name '*expansion*' | Format-Table -AutoSize
Find-Module -Name '*completer*' | Format-Table -AutoSize
Find-Module -Name '*tab*' | Format-Table -AutoSize
根據您使用的 PowerShell 版本,還有其他項目可以實現其他類似 Bash 的功能。例如:
如何使 PowerShell 選項卡補充全息 Bash 一樣工作新版本的 PowerShell 包括 PSReadline,可用於執行此操作:
Set-PSReadlineKeyHandler -Key Tab -Function Complete
若要使其永久化,請將此指令放入
C:\Users\[User]\Documents\WindowsPowerShell\profile.ps1.