![](/img/trans.png)
[英]How to accept user input in Visual Studio Code integrated Terminal?
[英]Visual Studio Code - Ctrl+Backspace not working in Integrated Terminal
在Visual Studio Code
的終端 (PowerShell) 中,我試圖Ctrl+Backspace
刪除最后一個詞,但它只是在行尾添加^W
,有什么解決辦法嗎? 它在 PowerShell 中的 Visual Studio Code 之外工作正常。
ctrl+backspace
以某種方式映射到 vscode 集成終端中的ctrl+w
(可能是一個錯誤),現在我們需要設置ctrl+w
綁定以顯式刪除單詞。 很奇怪吧?
Set-PSReadLineKeyHandler -Chord 'Ctrl+w' -Function BackwardKillWord
請注意,這僅適用於當前終端會話。
要使此行為持久化,您可以在配置文件Microsoft.PowerShell_profile.ps1
文件中設置它。 如果您的 powershell版本文件夾中不存在該文件,請創建該文件。
C:\Program Files\PowerShell\6\Microsoft.PowerShell_profile.ps1
寫在上面
if ($env:TERM_PROGRAM -eq "vscode") {
Set-PSReadLineKeyHandler -Chord 'Ctrl+w' -Function BackwardKillWord
}
看起來正在跟蹤一個問題:請參閱workbench.action.terminal.deleteWordLeft 不起作用,輸出 ^W 。
在 git bash 終端中對我來說很好用,但在 vscode 1.36 中對 powershell 不起作用。
vscode v1.45 對這些終端命令進行了一些更改,例如deleteWordLeft
。 Ctrl+Backspace 現在更適合您嗎?
根據最新評論https://github.com/microsoft/vscode/issues/68167我修改了 JerryGoyal 的答案,所以我們不必修改綁定:
將以下內容放在Microsoft.PowerShell_profile.ps1
配置文件的頂部(在終端中鍵入$profile
以找到它,如果它不存在,您可能需要創建一個)
if ($env:TERM_PROGRAM -eq "vscode") {
Set-PSReadLineOption -EditMode Emacs
}
這對我有用(vscode 1.43)
檢查設置中的鍵綁定以確保它仍然設置。
在添加新擴展或更新時,鍵綁定被刪除/更改時,我遇到了一些奇怪的問題。 您可能只需要重新添加它。
當然VSCode和PowerShell是兩種不同的環境。 如果您拆分終端窗口(我一直在為自己的工作用例執行此操作),您最終會得到 VSChost 和標准控制台主機,您會發現盡管您使用的是 VSCode,但它們的行為有所不同。
如果您還沒有這樣做,您可能需要自定義集成控制台將讀取的 VSCode 配置文件,而控制台主機將讀取您的 PowerShell 控制台配置文件,而不是您的 ISE 配置文件。
添加到 JerryGoyal 答案:
如果您在查找配置文件文件夾和/或使其正常工作時遇到困難。 這就是幫助我的東西。
當我按下Ctrl + Backspace時,它顯示^W
。
只需在 vscode 控制台中運行此命令
Set-PSReadLineOption -EditMode Emacs
現在它起作用了!
將此添加到 vs 代碼中的 keybindings.json
{
"key": "ctrl+backspace",
"command": "workbench.action.terminal.sendSequence",
"when": "terminalFocus",
"args": { "text": "\u0017" }
},
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.