在 bash 中有一個很好的功能,當一個字串部分完成(如路徑)并且我們使用制表符進行自動完成時,我們會立即回顯所有可能的選項以幫助我們可能想要輸入的下一個字符。
在 PowerShell 中,它一次只回圈通過一個選項,因此在涉及多種可能性時您相對盲目。
在 PowerShell 中是否有可能的等效行為?
uj5u.com熱心網友回復:
用于Set-PSReadLineKeyHandler重新定義按下時發生的情況Tab,如下所示:
Set-PSReadLineKeyHandler Tab MenuComplete
請注意,您必須將此命令添加到您的$PROFILE檔案中才能使其在以后的會話中生效。
該函式的行為MenuComplete如下:
- 如果不可能完成,則不采取任何行動。
- 如果只有一個可能的完成,它會立即在線執行。
- 如果有兩個或更多可能的完成,則可能完成的互動式選單會顯示在輸入行下方:[1]
- 使用Tab或箭頭鍵回圈完成并按下Enter以選擇一個,這會完成基于該選擇鍵入的內容并關閉選單。
- 或者,繼續鍵入,它與引數名稱匹配前綴并動態縮小選單(洗掉字符以再次展開它)。
- 請注意,突出顯示的選單項還在選單下方
顯示該引數的資料型別。
- 完成引數名稱后,如果您需要資料型別資訊以及該引數的口頭描述,您可以使用默認
ShowParameterHelp系結到的 PowerShell (Core) 7.2 中提供的函式Alt h。
- 完成引數名稱后,如果您需要資料型別資訊以及該引數的口頭描述,您可以使用默認
- 使用Tab或箭頭鍵回圈完成并按下Enter以選擇一個,這會完成基于該選擇鍵入的內容并關閉選單。
附加PSReadLine提示:
要查看可用功能串列:
查閱
about_PSReadLine_Functions幫助主題;如果它在本地不可用(使用Get-Help about_PSReadLine_Functions),請運行Update-Help -Module PSReadLine.要列出按功能類別分組的所有功能,請使用
Get-PSReadLineKeyHandler:Get-PSReadLineKeyHandler -Bound -Unbound要查看按函式名稱排序的平面串列:
Get-PSReadLineKeyHandler -Bound -Unbound | Sort-Object Function | Select-Object Function, Key, Description
要檢查給定函式當前系結到的鍵和弦:
# This example looks for function names that contain the word "menu" # Use -eq with a full function name, if known. Get-PSReadLineKeyHandler | Where-Object Function -like *Menu*要發現當前系結到給定鍵和弦的功能:
使用Windows 上默認
WhatIsKey系結的函式;Alt ?在類 Unix 平臺上,可用鍵和弦的范圍有限,沒有默認系結,但您可以如下定義一個,Alt w例如:Set-PSReadLineKeyHandler Alt w WhatIsKey按下
WhatIsKey系結的鍵弦然后提示按下感興趣的鍵弦,如果它被系結,則列印系結的函式名稱及其描述。
[1] 可能的補全未按字母順序顯示;相反,順序似乎基于引數定義順序,并結合了一些額外的邏輯:首先列出完全匹配,在原始名稱之后列出別名,在靜態引數之后列出動態引數,然后是匹配的公共引數名稱最后的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/527291.html
標籤:电源外壳
