解决vscode集成终端按下ctrl+c无效

解决vscode集成终端按下ctrl+c无效

vscode terminal ctrl+c is invalid/ don’t work

问题表现

linux bash 或cmd 或powershell按下ctrl+c可以终止终端中当前正在运行的程序,并开启新的提示符

我的集成终端有wsl-bash wsl-fish cmd powershell,按下ctrl+c后都无效果,网上找到一种解决办法

解决办法

Make Ctrl+C=copy and Ctrl+Shift+C=interrupt in VSCode terminal

How can I make cmd+c send ctrl+c in VS Code’s terminal, in macOS?

vscode docs对这个workbench.action.terminal.sendSequence作用的介绍

Integrated Terminal in Visual Studio Code

1
2
3
4
5
6
{
"key": "cmd+c",
"command": "workbench.action.terminal.sendSequence",
"args": { "text": "\u0003" },
"when": "terminalFocus"
}

按截图中的设置keybindings.json就好了

image-20210311013423875

无效的原因和另一种解决办法

ctrl+c能终止程序是个很自然的事,为什么不行呢?

观察我的vscode key 设置,发现有很多ctrl+c或包含它的组合键(其中有些是我以前安装了ctags扩展导致的改键),这些导致了按键的冲突,很自然的想到,如果把这些改键恢复到默认,是不是就行了呢?

在我设置这些改键为默认键后,发现不需要上面的workbench.action.terminal.sendSequence设置,ctrl+c就能在各种终端中正常工作了。

如果我需要保留那些ctrl+c的组合键,使用workbench.action.terminal.sendSequence就是有用的