Terminal: Réexaminez la pause Ctrl + S

Créé le 15 mai 2019  ·  3Commentaires  ·  Source: microsoft/terminal

À un moment donné de l'histoire, nous avons cassé Ctrl+S pour mettre en pause la sortie dans l'hôte de la console. Je pense que c'était à peu près à l'époque où nous nous sommes trompés avec les trucs d'ExtendedEditKeys.

Je n'ai plus le contexte complet à ce sujet, c'est juste un autre bogue de titre de note à moi-même que j'avais en tant que MSFT: 17790922 que je porte à l'extérieur.

Nous devons réexaminer l'état de la pause Ctrl + S à travers les âges. Comment la v1 a-t-elle fait ? Comment la v2 a-t-elle procédé par rapport aux versions de Windows 10 ? Avons-nous besoin de le réintroduire en tant qu'option d'une manière ou d'une autre ?

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

Commentaire le plus utile

Dans NT 4, avec le mode d'entrée de ligne activé, la sortie de la console pouvait être suspendue via la touche pause ( VK_PAUSE ) ou Ctrl-S. Je suis certain que Ctrl-S a été choisi pour la commodité des personnes habituées aux terminaux. Cela dit, appuyer sur n'importe quelle touche reprend la sortie ; il n'est pas nécessaire que ce soit Ctrl-Q puisque la console n'est pas réellement un terminal répondant à XOFF/XON.

Autour de Windows 2000, le paramètre de registre "ExtendedEditKey" a été ajouté. Si cela était activé, les clés d'édition personnalisées pourraient être définies dans "ExtendedEditkeyCustom". Je ne pense pas que cela ait jamais été documenté. Si aucun mappage personnalisé n'était défini, il utilisait un mappage par défaut qui incluait le mappage Ctrl-S -> VK_PAUSE . Ainsi, Ctrl-S fonctionnait toujours par défaut même si "ExtendedEditKey" était activé.

La nouvelle console expose "ExtendedEditKey" dans la boîte de dialogue des propriétés, mais elle est maintenant réutilisée pour les "touches de sélection de texte étendues". Étant donné que "ExtendedEditkeyCustom" ne semble plus être implémenté au-delà d'une macro résiduelle CONSOLE_REGISTRY_EXTENDEDEDITKEY_CUSTOM dans la source, je pense que IsPauseKey devrait simplement renvoyer true pour VK_PAUSE ou Ctrl-S, ce qui restaurer le comportement d'origine.

Sur une note connexe, dans la source, je vois que "ExtendedEditKey" et la boîte de dialogue des propriétés définissent la valeur de global g_fEditKeys , mais il semble être inutilisé.

Tous les 3 commentaires

Ctrl+S / XOFF , ctrl+Q XON. C'est juste votre ancien logiciel de contrôle de flux. Pour ma part, je l'utiliserais beaucoup avec les journaux de diffusion en continu, le chat, la queue, etc. Un vestige des anciens téléimprimeurs / terminaux et conservé dans VT.

Oh, et oui, je pense que vous devriez certainement le réintroduire.

Dans NT 4, avec le mode d'entrée de ligne activé, la sortie de la console pouvait être suspendue via la touche pause ( VK_PAUSE ) ou Ctrl-S. Je suis certain que Ctrl-S a été choisi pour la commodité des personnes habituées aux terminaux. Cela dit, appuyer sur n'importe quelle touche reprend la sortie ; il n'est pas nécessaire que ce soit Ctrl-Q puisque la console n'est pas réellement un terminal répondant à XOFF/XON.

Autour de Windows 2000, le paramètre de registre "ExtendedEditKey" a été ajouté. Si cela était activé, les clés d'édition personnalisées pourraient être définies dans "ExtendedEditkeyCustom". Je ne pense pas que cela ait jamais été documenté. Si aucun mappage personnalisé n'était défini, il utilisait un mappage par défaut qui incluait le mappage Ctrl-S -> VK_PAUSE . Ainsi, Ctrl-S fonctionnait toujours par défaut même si "ExtendedEditKey" était activé.

La nouvelle console expose "ExtendedEditKey" dans la boîte de dialogue des propriétés, mais elle est maintenant réutilisée pour les "touches de sélection de texte étendues". Étant donné que "ExtendedEditkeyCustom" ne semble plus être implémenté au-delà d'une macro résiduelle CONSOLE_REGISTRY_EXTENDEDEDITKEY_CUSTOM dans la source, je pense que IsPauseKey devrait simplement renvoyer true pour VK_PAUSE ou Ctrl-S, ce qui restaurer le comportement d'origine.

Sur une note connexe, dans la source, je vois que "ExtendedEditKey" et la boîte de dialogue des propriétés définissent la valeur de global g_fEditKeys , mais il semble être inutilisé.

Cette page vous a été utile?
0 / 5 - 0 notes