首页 > 解决方案 > 如何在 VSCode 终端中发送 SIGQUIT 或 SIGKILL

问题描述

有没有办法为 VSCode 终端配置键盘快捷键以将 SIGQUIT 发送到正在运行的进程?

发送 SIGINT ( Ctrl+ C) 似乎是可能的(参见这个那个问题),但这对配置 SIGINT 处理程序并且不能通过 SIGINT 终止的进程没有帮助。

在我正在 ssh-ing 的 Linux 机器上,在这种情况下,我通常可以使用键盘快捷键Ctrl+\发送 SIGQUIT。这似乎不适用于开箱即用的 VSCode 终端。有没有办法手动配置类似的键盘快捷键?


一些与 VSCode 无关的相关问题:

标签: visual-studio-codeterminal

解决方案


我发现了一些有用的东西。我已将以下内容添加到keybindings.json(通过转到File => Preferences => Keyboard Shortcuts,然后单击右上角的 switch-to-json 小按钮):

// Place your key bindings in this file to override the defaultsauto[]
[
    // other bindings ...,
    {
        "key": "oem_4",
        "command": "workbench.action.terminal.sendSequence",
        "args": {
          "text": "\u001c"
        },
        "when": "terminalFocus"
    }
]

笔记:

  • oem_4键对应于我键盘上的Ctrl+ \,但这可能是由于使用了德语键盘布局。最简单的设置方法是切换回图形键盘快捷键视图,搜索“sendSequence”,然后使用键盘快捷键检测设置键。
  • 这是一个受文档这个“表”\u001c启发的幸运猜测,但它似乎正确地发送了 SIGQUIT。
  • 同样有用的是stty -a在主机上运行以检查终端是否支持该序列。

推荐阅读