某些按键被 Visual Studio Code 捕获(例如,在我的情况下是Ctrl+ K),从而阻止内置终端接收它。我如何让 Visual Studio Code 转发这样的按键(以及可能被捕获的其他按键)?
我还希望能够使用涉及它的 VSC 快捷方式,以便能够在我需要时捕捉到它。
为了进行比较,默认设置的 Tmux 会将Ctrl+B号加倍(Ctrl+ B Ctrl+ B)来转发。
例如,尽管 Tmux 捕获了我的第一个Ctrl+ B,我仍然可以通过第二次敲击来让我的 irssi 会话获得一个Ctrl+ B,以便将我的文本放入大胆的。但我仍然可以使用Ctrl+B与 tmux 本身进行交互。这就是我在 Visual Studio Code 中寻求的行为。
答案1
在当前版本中,您可以:
启用
terminal.integrated.sendKeybindingsToShell
-这将把大多数键绑定发送到 shell,但其中一些仍会被跳过。编辑
terminal.integrated.commandsToSkipShell
- 您可以在此处设置专门发送到 shell 和不发送到 shell 的命令。它由上面的选项覆盖。例如,要默认禁用提到的Ctrl+ B,您可以使用-workbench.action.toggleSidebarVisibility
:"terminal.integrated.commandsToSkipShell": [ // Minus at the start means it should go through "-workbench.action.toggleSidebarVisibility" ]
Ctrl+的问题K在于,很多命令都将其用作和弦。您可以禁用terminal.integrated.allowChords
设置以完全消除和弦,此设置还提到您应该这样做才能使这些快捷方式正常工作:
请注意,当将其设置为 true 并且按键结果为和弦时,它将绕过终端 > 集成:跳过 Shell 的命令,当您希望 ctrl+k 转到 shell(而不是 VS Code)时,将其设置为 false 特别有用
您可以阅读更多关于这些的内容这里。
Ctrl取消绑定/重新绑定所有以您想要的键绑定(例如+ K-> Ctrl+ )开头的组合的和弦M也应该可以正常起作用,我很确定这就是您可以尝试的全部。