VS Code中原本可用的Ctrl+C快捷键失效原因排查求助
VS Code 1.78.2中Ctrl+C无法触发Python SIGINT信号的问题解决
问题现象
在VS Code 1.78.2版本中,原本用于终止进程、发送SIGINT信号的Ctrl+C快捷键突然失效。运行测试Python代码时,终端能识别到Ctrl+C(显示^C),但无法触发信号处理函数,进程始终无法终止。
测试代码
import signal import sys import time def signal_handler(sig, frame): print("You pressed Ctrl+C!") sys.exit(0) if __name__ == "__main__": signal.signal(signal.SIGINT, signal_handler) print("Press Ctrl+C") while True: time.sleep(1)
终端输出
python test.py Press Ctrl+C ^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C
VS Code版本信息
版本: 1.78.2 (Universal) 提交: b3e4e68a0bc097f0ae7907b217c1119af9e03435 日期: 2023-05-10T14:44:45.204Z Electron: 22.5.2 Chromium: 108.0.5359.215 Node.js: 16.17.1 V8: 10.8.168.25-electron.0 操作系统: Darwin x64 17.7.0 沙箱: 否
解决方法
- 调整终端集成设置:打开VS Code设置,搜索
terminal.integrated.sendKeybindingsToShell,将其设置为true,确保快捷键直接发送给终端Shell而非VS Code自身处理。 - 检查终端Shell配置:若使用默认Shell(如zsh、bash),尝试切换到其他Shell测试,或重置Shell配置文件(如
.zshrc、.bashrc),排除自定义绑定干扰Ctrl+C的默认行为。 - 排查扩展冲突:暂时禁用近期安装的扩展,通过命令面板执行
Disable All Installed Extensions后重启VS Code,确认是否有扩展拦截了信号传递。 - 重置VS Code配置:若上述方法无效,通过命令面板执行
Preferences: Reset Settings恢复默认设置,排除自定义配置导致的异常。 - 临时终止方案:可通过终端
Ctrl+\发送SIGQUIT信号终止进程,或点击终端面板右侧的垃圾桶图标直接关闭进程。
内容的提问来源于stack exchange,提问作者Conrad Sarbak
相关产品推荐
相关产品推荐

