Terminal: 重新调查 Ctrl+S 暂停

创建于 2019-05-15  ·  3评论  ·  资料来源: microsoft/terminal

在历史的某个时刻,我们打破了 Ctrl+S 以暂停控制台主机中的输出。 我认为大约是在我们搞砸 ExtendedEditKeys 的时候。

我不再有完整的上下文,这只是我作为 MSFT 遇到的另一个自我说明的唯一错误:17790922,我正在移植到外部。

我们需要重新调查 Ctrl+S 暂停的状态。 v1是怎么做到的? v2 在 Windows 10 版本上是如何做到的? 我们是否需要以某种方式重新引入它作为一种选择?

Area-Input Area-Interaction Issue-Feature Product-Conhost

最有用的评论

在 NT 4 中,启用行输入模式后,控制台输出可以通过暂停键 ( VK_PAUSE ) 或 Ctrl-S 暂停。 我确信选择 Ctrl-S 是为了方便习惯终端的人。 也就是说,按任意键恢复输出; 它不必是 Ctrl-Q,因为控制台实际上不是响应 XOFF/XON 的终端。

在 Windows 2000 前后,添加了“ExtendedEditKey”注册表设置。 如果启用此功能,则可以在“ExtendedEditkeyCustom”中定义自定义编辑键。 我认为这从未被记录在案。 如果未定义自定义映射,则使用包含 Ctrl-S -> VK_PAUSE映射的默认映射。 因此,即使启用了“ExtendedEditKey”,默认情况下 Ctrl-S 仍然有效。

新控制台在属性对话框中公开了“ExtendedEditKey”,但它现在重新用于“扩展文本选择键”。 由于“ExtendedEditkeyCustom”似乎不再在源代码中残留的CONSOLE_REGISTRY_EXTENDEDEDITKEY_CUSTOM宏之外实现,我认为IsPauseKey应该简单地为VK_PAUSE或 Ctrl-S 返回 true,这将恢复原来的行为。

在相关说明中,在源代码中,我看到“ExtendedEditKey”和属性对话框设置了全局g_fEditKeys的值,但它似乎未使用。

所有3条评论

Ctrl+S / XOFF , ctrl+Q XON。 这只是你的旧软件流控制。 就我自己而言,我会在流式日志、猫、尾巴等方面大量使用它。旧电传打印机/终端的遗迹并在 VT 中进行。

哦,是的,我认为你绝对应该重新引入它。

在 NT 4 中,启用行输入模式后,控制台输出可以通过暂停键 ( VK_PAUSE ) 或 Ctrl-S 暂停。 我确信选择 Ctrl-S 是为了方便习惯终端的人。 也就是说,按任意键恢复输出; 它不必是 Ctrl-Q,因为控制台实际上不是响应 XOFF/XON 的终端。

在 Windows 2000 前后,添加了“ExtendedEditKey”注册表设置。 如果启用此功能,则可以在“ExtendedEditkeyCustom”中定义自定义编辑键。 我认为这从未被记录在案。 如果未定义自定义映射,则使用包含 Ctrl-S -> VK_PAUSE映射的默认映射。 因此,即使启用了“ExtendedEditKey”,默认情况下 Ctrl-S 仍然有效。

新控制台在属性对话框中公开了“ExtendedEditKey”,但它现在重新用于“扩展文本选择键”。 由于“ExtendedEditkeyCustom”似乎不再在源代码中残留的CONSOLE_REGISTRY_EXTENDEDEDITKEY_CUSTOM宏之外实现,我认为IsPauseKey应该简单地为VK_PAUSE或 Ctrl-S 返回 true,这将恢复原来的行为。

在相关说明中,在源代码中,我看到“ExtendedEditKey”和属性对话框设置了全局g_fEditKeys的值,但它似乎未使用。

此页面是否有帮助?
0 / 5 - 0 等级