vscode 启动外部终端更改Ctrl+C处理程序

hgb9j2n6  于 5个月前  发布在  Vscode
关注(0)|答案(4)|浏览(66)

类型:Bug

重现步骤:

  1. 启动VSCode(任意位置)
  2. 使用Ctrl+Shift+C启动新的外部终端。在这个例子中,我使用的是命令提示符。
  3. 启动可以处理Ctrl+C的新程序
  4. 按Ctrl+C。
    预期结果:程序正常处理Ctrl+C。
    实际结果:程序根本看不到Ctrl+C。
    一个简单的可以处理Ctrl+C的程序示例是Python。然而,任何可以处理Ctrl+C的应用程序都会受到影响(例如我的简单WASAPI回环程序)。请在第2步创建的VSCode终端中运行此Python脚本。
try:
    while True:
        pass
except KeyboardInterrupt:
    print("OK")

如果在运行该脚本时按下Ctrl+C:

  • 如果终端/命令提示符是由VSCode启动的,按下Ctrl+C什么都不做。
  • 如果终端/命令提示符是由其他方式启动的,按下Ctrl+C会打印“OK”并停止无限循环。

在内部测试版和稳定版(1.87.0)中都可以重现。
VS Code版本:Code - Insiders 1.88.0-insider ( 8c2b09c , 2024-02-28T18:53:20.095Z)
操作系统版本:Windows_NT x64 10.0.22631
模式:
系统信息
| 项目 | 值 |
| ------ | ------ |
| CPUs | AMD Ryzen 7 4700U with Radeon Graphics (8 x 1996) |
| GPU状态 | 2d_canvas:启用canvas_oop_rasterization:启用_ondirect_rendering_display_compositor:禁用_off_okgpu_compositing:启用multiple_raster_threads:启用_onopengl:启用_onrasterization:启用raw_draw:禁用_off_okskia_graphite:禁用_offvideo_decode:启用video_encode:启用vulkan:禁用_offwebgl:启用webgl2:启用webgpu:启用 |
| 负载(平均) | undefined |
| 内存(系统) | 15.39GB(7.43GB可用) |
| 进程参数 | --crash-reporter-id ca2e3ed8-bdf1-4e2a-b9d7-b651fe0eba6b |
| 屏幕阅读器 | 无 |
| VM | 0% |扩展:无A/B实验

hsgswve4

hsgswve42#

无论是使用热键还是命令面板打开外部终端,都不会影响内部终端,即Ctrl+C仍然可以在那里工作。

wlwcrazw

wlwcrazw3#

请解决这个问题/提供一个解决方案。去年它完全正常工作,不知道发生了什么。

rjzwgtxy

rjzwgtxy4#

对我来说,一个可行的解决方法是在VSCode启动外部终端后运行wt && exit。新的Windows Terminal选项卡将不会出现这个问题。不幸的是,只有在用户将Windows Terminal设置为默认的conhost时,这种方法才能起作用。

相关问题