Visual Studio Code - Ctrl+Backspace 在集成终端中不起作用

Bja*_*rte 9 powershell visual-studio-code

在终端(PowerShell)中Visual Studio Code,我试图点击Ctrl+Backspace删除最后一个单词,但它只是添加^W到行尾,任何想法如何解决这个问题?它在 PowerShell 中的 Visual Studio Code 之外工作正常。

Jer*_*yal 13

ctrl+backspace以某种方式映射到ctrl+wvscode 集成终端(可能是一个错误),现在我们需要设置ctrl+w绑定以显式删除该单词。很奇怪吧?

Set-PSReadLineKeyHandler -Chord 'Ctrl+w' -Function BackwardKillWord
Run Code Online (Sandbox Code Playgroud)

请注意,这仅适用于当前终端会话。


要使此行为持久,您可以在配置Microsoft.PowerShell_profile.ps1文件中设置它。如果您的 powershell版本文件夹中不存在该文件,请创建该文件。

C:\Program Files\PowerShell\6\Microsoft.PowerShell_profile.ps1
Run Code Online (Sandbox Code Playgroud)

写在顶部

if ($env:TERM_PROGRAM -eq "vscode") {
  Set-PSReadLineKeyHandler -Chord 'Ctrl+w' -Function BackwardKillWord
}
Run Code Online (Sandbox Code Playgroud)

查看更多:增强您的 PowerShell

键绑定参考:
https://learn.microsoft.com/en-gb/previous-versions/powershell/module/psreadline/Get-PSReadLineKeyHandler? view=powershell-5.0

https://learn.microsoft.com/en-gb/previous-versions/powershell/module/psreadline/set-psreadlinekeyhandler?view=powershell-5.0

  • 您可以运行“$profile”来查看“Microsoft.PowerShell_profile.ps1”文件的位置。 (3认同)

pos*_*ote 0

检查设置中的键绑定以确保其仍然设置。

在添加新扩展或更新时,我遇到了一些奇怪的情况,按键绑定被删除/更改。您可能只需要将其添加回来。

Visual Studio Code 的按键绑定

当然VSCode和PowerShell是两个不同的环境。如果您拆分终端窗口(我在自己的工作用例中一直这样做),您最终将得到 VSChost 和标准控制台主机,您会发现虽然您在 VSCode 中,但它们的行为有所不同。

如果您还没有这样做,您可能需要自定义 VSCode 配置文件,这是集成控制台将读取的内容,因为控制台主机将读取您的 PowerShell 控制台配置文件而不是 ISE 配置文件。