如何在VSCode终端中发送SIGKILL或SIGQUIT(CTRL+BACKSLASH)



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

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

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


一些非VSCode特定的相关问题:

  • 终端生成信号列表(例如Ctrl-C->SIGINT(
  • 当您必须使用多个键来键入\时,如何使用需要ctrl-\的键盘快捷键

我发现了一些有效的东西。我已经将以下内容添加到keybindings.json中(通过转到文件=>首选项=>键盘快捷键,然后单击右上角的小开关到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,以检查终端是否支持该序列

最新更新