旧版控制台模式

旧版控制台模式是一种兼容性工具,旨在帮助用户在 Windows 10 上运行较旧的命令行工具。 对于在默认 Windows 10 控制台体验中未正确显示或运行的任何命令行工具,此模式提供了一种粗粒度的解决方案,可将系统恢复到较旧版本的控制台托管体验。

使用旧版控制台模式

若要使用旧版控制台模式,请先打开任何控制台宿主窗口。 通常可通过启动命令解释器 CMDPowerShell 来完成。

右键单击应用程序标题栏,然后选择“Properties”菜单选项。 选择第一个选项卡“Options”。 然后选中描述 Use legacy console 的页面底部的框。 按“OK”按钮应用。

可通过返回到相同的属性表菜单并取消选中此框,然后按“OK”来还原该设置。

注意

此设置将全局应用于更改首选项后启动的所有会话。 已打开的会话不会发生更改。

模式之间的差异

控制台主机团队力求最大程度地减少旧版控制台模式和当前控制台模式之间的差异,以确保尽可能多的客户运行最新版本。 如果你遇到问题,需要使用此处未介绍的旧版控制台,请通过 microsoft/terminal GitHub 存储库或反馈中心与该团队联系,以获取帮助。

32 位 Windows 上的 16 位应用程序

某些 32 位 Windows 上的 16 位应用程序使用虚拟机技术来操作 NTVDM。 通常,这些应用程序将图形屏幕缓冲模式与控制台宿主环境结合使用以进行操作。 只有旧版控制台体验支持这些图形缓冲模式,而要运行这些应用程序,需要借助其他控制台 API 的支持。 启动任一这些应用程序时,系统将自动选择旧版控制台环境。

IME 嵌入

旧版控制台主机在宿主窗口内嵌入了 IME 的建议部分,在屏幕底部留了一行以提供建议。 而当前控制台主机环境会将此活动委托给 IME 子系统,以便在控制台主机上方显示叠加窗口和建议。 如果环境无法实现叠加窗口(类似于某些远程处理工具),可能需要使用旧版控制台主机。

API 差异

旧版本和当前版本之间的主要已知差异是 UTF-8 的实现。 旧版主机在代码页 65001上提供最基本的 UTF-8 支持,并且该支持通常不正确。 当前控制台主机包含 Windows 10 的增量改进版本来改善此项支持。 应用程序如何尝试依赖从旧版控制台预测 UTF-8 的“已知错误”解释,则会发现它们收到的解答会不同,因为支持已改进。

其他 API 差异应记录到 microsoft/terminal GitHub 存储库或通过反馈中心进行会审并在必要时进行修正。