如何让 Visual Studio Code 转发捕获的击键?

如何让 Visual Studio Code 转发捕获的击键?

某些按键被 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也应该可以正常起作用,我很确定这就是您可以尝试的全部。

相关内容