Terminal: Untersuchen Sie das Anhalten von Strg+S erneut

Erstellt am 15. Mai 2019  ·  3Kommentare  ·  Quelle: microsoft/terminal

Irgendwann in der Geschichte haben wir Strg + S unterbrochen, um die Ausgabe im Konsolenhost anzuhalten. Ich denke, es war ungefähr zu der Zeit, als wir uns mit dem ExtendedEditKeys-Zeug beschäftigt haben.

Ich habe nicht mehr den vollständigen Kontext dazu, dies ist nur ein weiterer Bug, den ich als MSFT: 17790922 hatte und den ich nach außen portiere.

Wir müssen den Zustand der Strg+S-Pause im Laufe der Jahrhunderte erneut untersuchen. Wie hat v1 das gemacht? Wie hat es v2 gegenüber den Versionen von Windows 10 geschafft? Müssen wir es irgendwie wieder als Option einführen?

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

Hilfreichster Kommentar

In NT 4 konnte die Konsolenausgabe bei aktiviertem Line-Input-Modus entweder über die Pause-Taste ( VK_PAUSE ) oder Strg-S ausgesetzt werden. Ich bin mir sicher, dass Ctrl-S für die Bequemlichkeit von Leuten gewählt wurde, die an Terminals gewöhnt sind. Das Drücken einer beliebigen Taste setzt die Ausgabe jedoch fort; es muss nicht Strg-Q sein, da die Konsole eigentlich kein Terminal ist, das auf XOFF/XON reagiert.

Um Windows 2000 herum wurde die Registrierungseinstellung "ExtendedEditKey" hinzugefügt. Wenn dies aktiviert war, konnten in "ExtendedEditkeyCustom" benutzerdefinierte Bearbeitungstasten definiert werden. Ich glaube nicht, dass dies jemals dokumentiert wurde. Wenn keine benutzerdefinierte Zuordnung definiert wurde, wurde eine Standardzuordnung verwendet, die die Zuordnung Strg-S -> VK_PAUSE enthielt. Daher funktionierte Strg-S immer noch standardmäßig, auch wenn "ExtendedEditKey" aktiviert war.

Die neue Konsole stellt "ExtendedEditKey" im Eigenschaftendialog zur Verfügung, aber es ist jetzt für "erweiterte Textauswahltasten" umfunktioniert. Da "ExtendedEditkeyCustom" nicht mehr über ein verkümmertes CONSOLE_REGISTRY_EXTENDEDEDITKEY_CUSTOM -Makro in der Quelle hinaus implementiert zu sein scheint, sollte IsPauseKey einfach true für VK_PAUSE oder Strg-S zurückgeben, was der Fall sein wird Wiederherstellen des ursprünglichen Verhaltens.

In einem verwandten Hinweis sehe ich in der Quelle, dass "ExtendedEditKey" und der Eigenschaftendialog den Wert von global g_fEditKeys setzen, aber es scheint unbenutzt zu sein.

Alle 3 Kommentare

Strg+S / XOFF , Strg+Q XON. Es ist nur eine alte Software-Flusskontrolle. Wenn ich für mich selbst spreche, würde ich es ziemlich oft mit Streaming-Protokollen, Cat, Tail usw. verwenden. Ein Überbleibsel von alten Fernschreibern / Terminals und in VT weitergeführt.

Oh, und ja, ich denke, Sie sollten es auf jeden Fall wieder einführen.

In NT 4 konnte die Konsolenausgabe bei aktiviertem Line-Input-Modus entweder über die Pause-Taste ( VK_PAUSE ) oder Strg-S ausgesetzt werden. Ich bin mir sicher, dass Ctrl-S für die Bequemlichkeit von Leuten gewählt wurde, die an Terminals gewöhnt sind. Das Drücken einer beliebigen Taste setzt die Ausgabe jedoch fort; es muss nicht Strg-Q sein, da die Konsole eigentlich kein Terminal ist, das auf XOFF/XON reagiert.

Um Windows 2000 herum wurde die Registrierungseinstellung "ExtendedEditKey" hinzugefügt. Wenn dies aktiviert war, konnten in "ExtendedEditkeyCustom" benutzerdefinierte Bearbeitungstasten definiert werden. Ich glaube nicht, dass dies jemals dokumentiert wurde. Wenn keine benutzerdefinierte Zuordnung definiert wurde, wurde eine Standardzuordnung verwendet, die die Zuordnung Strg-S -> VK_PAUSE enthielt. Daher funktionierte Strg-S immer noch standardmäßig, auch wenn "ExtendedEditKey" aktiviert war.

Die neue Konsole stellt "ExtendedEditKey" im Eigenschaftendialog zur Verfügung, aber es ist jetzt für "erweiterte Textauswahltasten" umfunktioniert. Da "ExtendedEditkeyCustom" nicht mehr über ein verkümmertes CONSOLE_REGISTRY_EXTENDEDEDITKEY_CUSTOM -Makro in der Quelle hinaus implementiert zu sein scheint, sollte IsPauseKey einfach true für VK_PAUSE oder Strg-S zurückgeben, was der Fall sein wird Wiederherstellen des ursprünglichen Verhaltens.

In einem verwandten Hinweis sehe ich in der Quelle, dass "ExtendedEditKey" und der Eigenschaftendialog den Wert von global g_fEditKeys setzen, aber es scheint unbenutzt zu sein.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen