是否可以讓 Powershell 中的自動補全功能像 bash 中一樣運作?

是否可以讓 Powershell 中的自動補全功能像 bash 中一樣運作?

我喜歡 Powershell,但來自 Linux 背景,有些事情確實困擾著我。例如預設自動完成的工作原理。

例如:Get-PS 擴展為“Get-PSBreakpoint”,這是第一個匹配命令。在 bash 中,如果只有一個命令匹配,bash 將擴展為匹配的命令。如果多次點擊選項卡一次沒有任何反應,雙擊選項卡將顯示匹配命令的列表,但不會展開。有沒有辦法讓 Powershell 表現得像這樣?

另一件事,如果我寫了一行,並將標記移回較早的命令(標記是 ^ 所在的位置):

“Get-PSS^ | Remove-PSSession”自動完成為“Get-PSSession^”,刪除所有尾隨指令。在 bash 中,尾隨命令仍然不受影響。有沒有辦法讓 Powershell 在自動完成時不刪除尾隨指令?

一個額外的好處是使用 CTRL+L 來清除螢幕。 CTRL+A 轉到行首,CTRL+E 轉到行尾。

答案1

查看PS閱讀線

來自文章:

此模組取代了 PowerShell.exe 中的命令列編輯體驗。它提供:

  • 語法著色
  • 簡單的語法錯誤通知
  • 良好的多行體驗(編輯和歷史)
  • 可自訂的按鍵綁定
  • Cmd 和 emacs 模式(尚未完全實現,但都可用)
  • 許多配置選項
  • Bash 風格補全(Cmd 模式下可選,Emacs 模式下預設)
  • Bash/zsh 風格的互動式歷史搜尋 (CTRL-R)
  • Emacs 猛拉/殺死環
  • 基於 PowerShell 令牌的「單字」移動和殺死
  • 撤銷重做
  • 自動儲存歷史記錄,包括跨即時會話共享歷史記錄
  • 透過 Ctrl+Space 完成「選單」(有點像 Intellisense,用箭頭選擇完成)

我每天都用它!

答案2

也許你應該看看電源選項卡,可自訂的 PowerShell 選項卡擴充。

答案3

嗨,彼得,請按F8對於諸如快速搜索之類的東西。它以您之前運行的命令完成,這些命令以行中的內容開頭。刪除尾隨的問題很煩人,我在 Connect 中就同一問題寫了一條建議。主要時間你可以使用 Powershell ISE,它的表現要好一些(不要刪除尾隨字元)。

答案4

PowerShell 使用與古老的命令提示字元相同的控制台功能;這樣你就有了通常的 Home/End,並且:

  • F3調出上一個指令
  • F1從上一個命令複製單一字符
  • F7彈出歷史記錄視窗

……但據我所知,沒有設施可以顯示所有可能的完成情況。

相關內容