[VS]控制台程序运行后无法聚焦到命令行窗口

0 环境

  1. Windows11 22H2
  2. VS 2022 Community
  3. Windows Terminal 1.18.2822.0

1 问题说明

当使用 VS 写控制台程序时,运行后会弹出 CMD 窗口,并聚焦到该窗口。除了当前程序运行外,最后应该是暂停,等待用户输入任意按键,然后自动退出。如下图:

[VS]控制台程序运行后无法聚焦到命令行窗口_第1张图片

但是,实际运行时却如下图所示,运行的是 Windows Terminal,并在其中运行 CMD。而且,最主要的问题是,总是需要再用鼠标点击一下窗口,才能聚焦到 CMD,才能接收到按键输入。即使使用 Alt+Tab 切换都不行(这只会让 Terminal 获得焦点,但 CMD 子窗口仍获取不到焦点)。

[VS]控制台程序运行后无法聚焦到命令行窗口_第2张图片

如上图示,CMD 窗口没有活动的光标,说明窗口没有获得焦点,则不会接受按键输入。

作为一个效率至上者,作为一个喜欢使用 vim/vsvim 这样的纯键盘开发者,这样总需要多余的抬手拿鼠标点击一下,是不可容忍的。

2 问题分析与解决

  • 问题分析

自己之前已经美化配置过 Terminal,确实也挺好用,当然不舍得直接删了。于是,只能来解决这个问题。

VS 控制台程序运行时默认是调用 CMD,现在变成了 Terminal,应该是 Terminal的安装使得当前系统所有 Windows 的命令行程序,默认都由 Terminal 调用与运行。

既然确定是由 Terminal 引起的问题,那就先尝试查找一下 Terminal 有没有相关的设置项;如果没有再去看看 Windows 的默认应用有没有相关的设置项。

  • 解决方案

Terminal 设置里有这样一个相关项。如下图示:

[VS]控制台程序运行后无法聚焦到命令行窗口_第3张图片

设置相关项:设置->启动->默认终端应用程序,其默认值为 “让 Windows 决定”。

经过测试,将 “ 让 Windows 决定” 修改成 “Windows 控制台主机” 即可解决 VS 这个问题。

你可能感兴趣的:(各路问题,VS,控制台程序,各路问题)