Terminal: Copier et coller des raccourcis clavier

Créé le 24 mai 2019  ·  60Commentaires  ·  Source: microsoft/terminal

Environnement

Windows build number: 10.0.18362.86
Windows Terminal version (if applicable):

Étapes à suivre pour reproduire

Dans la console Windows 10 standard, vous pouvez activer l'utilisation de Ctrl + C / V pour le copier-coller. Windows Terminal n'a pas cela, et c'est extrêmement frustrant.

Comportement prévisible

Activez l'utilisation de Ctrl + C pour copier et Ctrl + V pour coller.

Comportement réel

Ctrl + C ne copie rien et Ctrl + V écrit simplement ^ V à l'invite.

Area-User Interface Help Wanted Issue-Task Needs-Tag-Fix Product-Terminal

Commentaire le plus utile

J'aime la façon dont WSL + Bash gère le copier / coller. Ctrl + C copie uniquement lorsque quelque chose est sélectionné. Si rien n'est sélectionné, Ctrl + C se comporte comme d'habitude et envoie un SIGINT.

Tous les 60 commentaires

Cela sonne bien dans l'allée de @ carlos-zamora

Ou en fait, n'importe qui pourrait y sauter. Vous souhaitez configurer des actions de copier-coller dans App.cpp (comme _Scroll , par exemple) qui déclenchent les actions appropriées sur le TermControl. Il devrait déjà y avoir des raccourcis Copier et Coller, il s'agit donc simplement d'enregistrer leurs valeurs par défaut et de câbler les actions aux liaisons (voir HookupKeyBindings ou similaire dans App.cpp).

Je dois insister pour que les liaisons par défaut pour cela ne soient pas uniquement Ctrl+ .

Agh, désolé. Je n'avais pas l'intention de fermer ce problème.

Je dois insister pour que les liaisons par défaut pour cela ne soient pas uniquement Ctrl+ .

Je sais pourquoi vous dites cela, et c'est bien sûr pourquoi la console normale l'a derrière un paramètre qu'il faut activer. Mais les avoir derrière Ctrl + Shift ou quelque chose de similaire va à l'encontre de l'objectif. C'est la mémoire musculaire qui en fait les combinaisons de touches qui valent la peine d'être obtenues.

Pour moi, avoir Ctrl + V entre ^V n'a jamais été utile et je soupçonne que c'est vrai pour un nombre très important de personnes. Serait-il possible de l'activer comme paramètre?

Nous aurons peut-être besoin de raccourcis clavier spécifiques au profil. À l'heure actuelle, toutes les liaisons sont réassignables: sourire:

J'aime la façon dont WSL + Bash gère le copier / coller. Ctrl + C copie uniquement lorsque quelque chose est sélectionné. Si rien n'est sélectionné, Ctrl + C se comporte comme d'habitude et envoie un SIGINT.

@namatoj C'est parfait; exactement comme il se doit.

Je suppose que nous devrions au moins prendre en charge Ctrl-Insert / Shift-Insert / Shift-Delete si Ctrl-C / V / X peut avoir des conflits?

OMI, les options devraient être:

  • Comportement "intelligent", où CTRL-C n'est copié que si quelque chose est sélectionné.
  • Comportement personnalisé, avec des raccourcis clavier par défaut CTRL-SHIFT-C / V.
  • Aucun comportement, la copie est disponible dans le menu contextuel lors de la sélection.

Toute la discussion sur " CTRL + C étant copié uniquement si quelque chose est sélectionné" ignore CTRL + V - il n'y a pas d'indicateur pour savoir que nous devons coller, et si l'on valorise la cohérence avant tout, il est problématique de dire " CTRL + C uniquement fonctionne quand X, mais CTRL + V fonctionne toujours ". L'alternative, " CTRL + C si sélectionné, CTRL + SHIFT + V pour coller toujours" n'est pas particulièrement cohérente non plus.

Mais CTRL-C est universellement "envoyer un SIGINT", il y a là une énorme ambiguïté. Le terminal d'Ubuntu résout ce problème en utilisant CTRL-SHIFT-C / V pour copier / coller; le terminal MacOS le résout en utilisant CMD-C pour la copie et CTRL-C pour l'interruption.

CTRL-V n'a pas un tel conflit. Certains utilisateurs emacs peuvent le lier à des choses, mais si vous êtes suffisamment un utilisateur expérimenté d'emacs pour relier des clés, vous utilisez probablement de toute façon capslock comme clé méta.

Je pense que le principal risque de faire du comportement «intelligent» le comportement par défaut est simplement que les utilisateurs interrompent accidentellement un processus parce qu'ils ont manqué leur sélection. Si c'est un problème ou si nous voulons de la cohérence, je dirais simplement de copier Ubuntu et de créer les liaisons par défaut pour les deux CTRL-SHIFT-C / V.

En implémentant des raccourcis clavier personnalisés par profil, cela pourrait permettre aux raccourcis clavier Ubuntu par défaut de se comporter comme ils le devraient, ou permettre à l'utilisateur de les modifier pour permettre aux raccourcis du presse-papiers de Windows de se comporter comme ils le devraient.

@mikepurvis Le https://github.com/Eugeny/terminus le fait là où il clignote une courte fenêtre contextuelle pour indiquer que le texte a été copié ou collé.

@mikepurvis Le https://github.com/Eugeny/terminus le fait là où il clignote une courte fenêtre contextuelle pour indiquer que le texte a été copié ou collé.

Les info-bulles pour Copié seraient utiles, en particulier lorsque Ctrl + C n'est pas toujours affecté à la copie

Gnome Terminal a une combinaison de touches cohérente qui n'est pas intuitive au début, mais facile à adopter, et pas trop éloignée de l'habituel CTRL + C pour la copie.

CTRL + C : Annuler
CTRL + Maj + C : Copier
CTRL + Maj + V : Coller

Aucune logique de sélection, fonctionne toujours d'une manière spécifique. Je pense que c'est parfait. Cela s'harmoniserait également avec d'autres systèmes d'exploitation, car ce comportement est cohérent sous Linux et MacOS .

Vraiment, je ne pense pas que nous ayons des excuses puisque l'invite de commande utilise Entrée pour copier et clic droit pour coller.

@NatoBoram C'est très bien en option. Mais beaucoup de gens aiment le comportement intelligent. Partout ailleurs dans Windows, Ctrl + C est une copie et il est difficile d'ajuster le comportement d'une application, je veux donc un comportement intelligent.

Aussi, puisque le Conhost vit aussi ici; les effets du collage de texte obtenu avec Ctrl+C et Ctrl+Shift+C ont des effets différents.

image

La façon dont le tampon est lu est correcte pour le Ctrl+C aka le raccourci de comportement intelligent (c'est-à-dire avec les fins de ligne).

Toutes les applications de type terminal ont ce problème ( CMD , Powershell , WLS -apps) et puisque les cerveaux derrière toutes vivent ici, j'ai pensé que je 'le posterais.

Partout ailleurs dans Windows, Ctrl + C est une copie

Et sous Linux et sous MacOS. Windows n'est pas différent à cet égard.

Il est difficile d'ajuster le comportement d'une application

Oui, c'est pourquoi Microsoft a décidé que ce serait une excellente idée d'utiliser Entrée pour copier et Clic droit pour coller.
* Ahem *
Je veux dire, il est difficile d'ajuster le comportement d'un système d'exploitation. 🧂

Lancer un autre vote (même si le problème est clos) pour une option de configuration du comportement intelligent. Pour ma part, je configurerais toujours un comportement intelligent pour copier et CTRL+v pour coller. Si j'ai du texte en surbrillance et que je veux envoyer un SIGINT, je m'attends à frapper ESC puis CTRL+c .

Idem ici, j'aimerais une option pour faire toujours coller ctrl + v, et ctrl + c pour copier lorsqu'il est sélectionné et SIGINT lorsqu'il n'y a pas de sélection. C'est le comportement que j'ai actuellement dans conemu.

: tada: Ce problème a été résolu dans # 1093, qui a maintenant été publié avec succès sous le nom Windows Terminal Preview v0.3.2142.0 .: tada:

Liens utiles:

🎉Ce problème a été résolu dans # 1093, qui a maintenant été publié avec succès sous le nom Windows Terminal Preview v0.3.2142.0 .🎉

Liens utiles:

* [Release Notes](https://github.com/microsoft/terminal/releases/tag/v0.3.2142.0)

* [Store Download](https://www.microsoft.com/store/apps/9n0dx20hk701?cid=storebadge&ocid=badge)

L'ajout de ces raccourcis clavier fait l'affaire

{
                "command" : "copy",
                "keys" : 
                [
                    "ctrl+shift+c"
                ]
},
{
                "command" : "paste",
                "keys" : [
                    "ctrl+shift+v"
                ]
}

Comment se fait-il que personne n'ait pensé à faire ça à la manière du mastic? Actuellement, toute la base d'utilisateurs utilise putty ou cygwin. Sélectionnez pour copier, cliquez avec le bouton droit pour coller. Rien de plus simple.
Edit: suppression du commentaire mal élevé. Désolé

personne n'a pensé

Vous voulez dire # 524 et # 2152 (qui est une pull request de l'un des membres de l'équipe?)

Sur une petite note latérale, pourquoi coller du texte copié avec Ctrl+C et Ctrl+Shift+C semble avoir des effets différents dans PowerShell (décrit ci-dessus dans l'un des commentaires, répété ici, 🙈 désolé!)?

Personnellement, je préfère un comportement de copie "stupide", c'est-à-dire une liaison séparée pour celui-ci au lieu de lier ctrl + c (généralement SIGINT) à copier, quand quelque chose est sélectionné et dérange le comportement par défaut de nombreux shells. Cela peut devenir gênant lorsque vous arrêtez accidentellement l'application, qui s'exécute au premier plan, lorsque vous essayez de copier uniquement quelque chose. L'implémentation actuelle est géniale!

J'ai ajouté des liaisons pour Ctrl + C (qui copie si sélectionné et envoie un SIGINT) et Ctrl + V qui fonctionnent parfaitement bien et sont très intuitives pour moi.

Comme l'a dit @aolchawa , en ajoutant

        {
            "command" : "copy",
            "keys" : 
            [
                "ctrl+c"
            ]
        },
        {
            "command" : "paste",
            "keys" : [
                "ctrl+v"
            ]
        }

aux raccourcis clavier entraîne le comportement "Smart" @mikepurvis défini ci-dessus.
Je ne comprends pas tout à fait comment le terminal choisit entre SIGINT et Ctrl + C pour le moment, je ne vois pas de changement dans # 1093, qui définit cela, je vois à la ligne 46 que nous passons maintenant trimWhitespace à CopyTextEventArgs .
Je suppose que cela doit être la partie du changement qui provoque le comportement souhaité (pour moi).
Il ne semble pas y avoir de configuration dans profiles.json ou le schéma de profil qui peut être utilisé pour basculer le comportement.

En tout cas, c'est le comportement que je recherchais; J'espère que ma randonnée ici permettra à quelqu'un d'économiser quelques instants à fouiller dans le PR pour comprendre ce qui se passe.

@ltomes Ainsi, le changement qui a Ctrl + C était en fait # 2446. Maintenant, le titre est un peu trompeur: ce qu'il implémente vraiment, c'est "si une action de raccourci clavier indique qu'elle n'a rien fait (ou n'a pas été gérée), donnez au Terminal une seconde chance de la gérer". :sourire:

Merci pour le suivi / l'explication @ DHowett-MSFT! Je me sens plus sain d'esprit maintenant en voyant ce changement, je pensais que j'étais trop fatigué pour fonctionner. 🤣

Merci pour les raccourcis clavier.
Désormais, Windows Terminal fonctionne comme Windows cmd. :) (J'ai été en fait surpris que cela ne fonctionne pas comme le cmd Windows par défaut)

Gnome Terminal a une combinaison de touches cohérente qui n'est pas intuitive au début, mais facile à adopter, et pas trop éloignée de l'habituel CTRL + C pour la copie.

CTRL + C: Annuler
CTRL + Maj + C: Copier
CTRL + Maj + V: Coller

Aucune logique de sélection, fonctionne toujours d'une manière spécifique. Je pense que c'est parfait. Cela s'harmoniserait également avec d'autres systèmes d'exploitation, car ce comportement est cohérent sous Linux et MacOS .

Vraiment, je ne pense pas que nous ayons des excuses puisque l'invite de commande utilise Entrée pour copier et clic droit pour coller.

Je remplace toujours Gnome Terminal pour utiliser CTRL + C / CTRL + V à la place. Avoir cette seule application utilisant des liaisons différentes pour copier / coller que le reste du système entier est exaspérant pour moi.

La solution de contournement via l'ajout manuel de raccourcis clavier est utile, mais appelons un chat un chat: le problème n'est pas résolu tant qu'il n'y a pas de raccourcis clavier par défaut pour la fonction copier-coller. Ce qui, bien sûr, devrait pouvoir être annulé. Et devrait être documenté à coup sûr.

Une raison particulière pour laquelle Ctrl + Insert s'enregistre en tant que ;5~ et Shift + Insert s'enregistre en tant que ;2~ et ne fonctionne donc pas comme combinaison de touches pour le copier / coller?

J'adore ces clés et je ne comprends pas pourquoi cela ne devrait pas fonctionner

@darthcabs Pourriez-vous partager votre fichier de configuration? La seule chose qui me vient à l'esprit est que vous utilisez peut-être des liaisons en accord au lieu de liaisons individuelles:

liaisons en accord (cela ne fonctionnera pas, et quand c'est le cas, cela n'aura pas l'effet escompté)

"keybindings": [
    { "command": "copy", "keys": ["ctrl+shift+c", "shift+ins"] }
]

liens individuels (cela devrait fonctionner; # 3324 suggère un problème que nous ne pouvons pas reproduire)

"keybindings": [
    { "command": "copy", "keys": ["ctrl+shift+c"] },
    { "command": "copy", "keys": ["shift+ins"] }
]

@ DHowett-MSFT Je vous répondais quand j'ai compris quel était le problème ... Sur le clavier de mon ordinateur portable, la touche INS est la même que la touche F12.

Avant d'essayer de taper INS en appuyant sur FN + F12, mais en fin de compte, il est plus facile de mapper le copier / coller dans Terminal à ctrl + f12 / shift + f12 respectivement.

Merci beaucoup pour l'inspiration, lol!

@darthcabs Pourriez-vous partager votre fichier de configuration? La seule chose qui me vient à l'esprit est que vous utilisez peut-être des liaisons en accord au lieu de liaisons individuelles:

liaisons en accord (cela ne fonctionnera pas, et quand c'est le cas, cela n'aura pas l'effet escompté)

"keybindings": [
  { "command": "copy", "keys": ["ctrl+shift+c", "shift+ins"] }
]

liens individuels (cela devrait fonctionner; # 3324 suggère un problème que nous ne pouvons pas reproduire)

"keybindings": [
  { "command": "copy", "keys": ["ctrl+shift+c"] },
  { "command": "copy", "keys": ["shift+ins"] }
]

Pour moi, ce qui a fonctionné est shift+insert , pas shift+ins - poster ici juste au cas où cela aiderait quelqu'un.

Comme nous pouvons le voir, il s'agit d'un problème constant car il n'est pas intuitif. Voir https://github.com/ayugioh2003/today-i-learned/issues/281

Ctrl + C, Ctrl + V devrait "juste fonctionner", et il n'y a aucun moyen de contourner cela. Les utilisateurs ont rendu (et continuent de faire) leur verdict.

Et comme le nouvel outil de ligne de commande (pas celui-ci) fonctionne "correctement", c'est à dire. comme prévu, celui-ci devrait aussi. Si vous les développeurs êtes friands d'un autre scénario, ajoutez-le comme paramètre et laissez le comportement populaire être le comportement par défaut.

J'apprécie votre contribution ici. Merci! Juste pour souligner quelques points:

  • C'est un décor aujourd'hui! Ces raccourcis clavier peuvent être définis dans profiles.json .
  • Un examen préliminaire du paysage des utilisateurs qui _ont_ personnalisé leurs profils montre que moins de 1% des utilisateurs du Terminal lient ctrl + c / v. Il semble que le comportement populaire ait été défini par défaut.

Mais cela suppose que les gens savent comment le changer. Pardonnez mes mauvaises manières.

Une métrique plus significative serait le nombre de touches Ctrl + V ayant quelque chose
dans leur presse-papiers, puis a obtenu le ^ V, puis l'a effacé, ou s'est simplement terminé par
quitter l'application ...

Den tors 19 mars 2020 02: 31Dustin L. Howett (MSFT) [email protected]
skrev:

Pour tous ceux qui arrivent sur ce fil de discussion depuis Google: les raccourcis clavier par défaut sont Ctrl+Shift+C et Ctrl+Shift+V . Je ne les ai pas trouvés dans mes paramètres, donc je n'étais pas sûr de la valeur par défaut.

De plus, je ne vois pas cela discuté ici, mais je pense qu'il vaut la peine de le mentionner: Entrée pour copier et clic droit pour coller ne fonctionne pas non plus.

Du point de vue de l'accessibilité, avoir des combinaisons de 3 touches ou un clic de souris + touche est très difficile, voire impossible, pour les personnes ayant une seule main ou une fonction manuelle limitée. C'est une grande raison pour laquelle je ne peux pas utiliser emacs et je suis coincé avec vi / vim.

Le comportement par défaut que nous avons eu sous Linux / Xwindows au cours des 20 dernières années est le plus accessible. DoubleCliquez pour sélectionner un mot, cliquez trois fois sur la ligne et cliquez avec le bouton droit de la souris pour coller. Cela semble fonctionner dans un cadre Terminal mais ne remplit pas de manière fiable le presse-papiers. Remarque - ConEmu a cette fonctionnalité - Je peux sélectionner du texte dans un terminal et il remplit le presse-papiers.

@ DHowett-MSFT, j'étais également coincé à ne pas comprendre pourquoi le copier / coller ne fonctionne pas comme tous les autres terminaux sous Windows ou Linux (ce qui m'a conduit à ce problème de github après quelques recherches). Je ne pense pas que les gens préfèrent ce paramètre, ils ne savent tout simplement pas comment le changer et ne se sentent pas à l'aise pour modifier le fichier de raccourcis clavier.

ne fonctionne pas comme tous les autres terminaux sous Windows ou Linux

C'est un peu dramatique, étant donné que le comportement par défaut actuel de Terminal (Ctrl-Shift-C / V) correspond exactement à ce que fait le terminal par défaut sur Ubuntu.

C'est une question de plus haut niveau; pour qui devrions-nous optimiser? Clairement pas le
utilisateurs Windows ...

Den tors 9 avr. 2020 19: 08Mike Purvis [email protected] skrev:

J'appelle juste qu'il est injuste de saisir nos perles et de prétendre que l'équipe Terminal a fait le mauvais appel ici parce que c'est différent de "tous les autres terminaux sous Windows ou Linux", alors que tous les autres terminaux sous Windows sont une affaire de tiers et l'équipe ici a _copié par défaut ce que la principale distribution Linux fait depuis toujours_.

Et la seule raison pour laquelle ce n'est pas un problème sur Mac OS est que cmd et ctrl sur ce système se trouvent être des boutons séparés.

Tous les bons points Mike, mais avouons-le, la plupart des utilisateurs de Windows ne le sauront pas
comment coller dans ce terminal.

C'est mon seul problème ici. Pas seulement le mien, mais beaucoup de gens, beaucoup de gens
être assez compétent dans Windows mais aucune expérience du tout avec Linux, et
il y a un problème où personne ne sait combien. Voulons-nous ces gens
utiliser le terminal ou le rejeter comme étant incomplet?

Si nous sommes satisfaits de l'état actuel des choses, alors à tout le moins,
mesurons combien essaient de coller mais ne peuvent pas.

Si nous ne voulons pas de télémétrie à ce sujet, que diriez-vous d'un petit compteur et quand
vous l'avez essayé 3 fois en 3 minutes, affichez une notification avec un lien vers
ce problème.

... Je plaisante, des instructions sur la façon de le changer.

Den tors 9 avr. 2020 19: 57Mike Purvis [email protected] skrev:

Pour la télémétrie, je viens de télécharger et de construire ce terminal aujourd'hui, et c'est ma seule plainte majeure à ce jour. Il y a une option dans Préférences qui m'indique que Ctrl-C / V devrait fonctionner, mais ce n'est évidemment pas le cas. Veuillez activer la fonction "Smart Ctrl-C" mentionnée ci-dessus, c'est ma plainte n ° 1 à propos de CMD depuis la nuit des temps. :)

Je tiens à souligner que j'ai trouvé ce problème en recherchant comment Windows Terminal implémentait le copier-coller. L'une des plus grandes plaintes que j'entends de la part des développeurs travaillant à la fois sur Linux et Windows est que le copier / coller de Windows est incompatible avec le shell tiers installé et entre Linux. Presque toutes les distributions / terminaux Linux utilisent ctrl+shift+c/v , donc je suis heureux que Windows Terminal ait également défini ce paramètre par défaut.

Pourquoi ne pas avoir à la fois Ctrl + C / V et Ctrl + Maj + C / V?

@ bjorn-ali-goransson Nous venons en fait de modifier le fichier de paramètres par défaut pour inclure les deux, afin que les utilisateurs puissent facilement désactiver Ctrl + C / Ctrl + V s'ils le souhaitent.

Voir ce PR et # 5187

  • Il semble que le comportement populaire ait été défini par défaut.

Absurdité. Cela signifie que les gens abandonnent d'essayer de le réparer ou ne savent pas qu'il peut être corrigé.

C'est la raison pour laquelle je suis sur ce fil maintenant.

@soilstack merci. Pensez à lire les messages les plus récents sur ce fil.

C'est vraiment incroyable pour moi que vous ne puissiez pas trouver comment faire quelque chose d'aussi fondamental que ce travail! C'est une affaire énorme. J'adore tout le reste de l'application Terminal, mais cette faille de base me surprend à chaque fois que je l'utilise.

@SteveIves Vous savez que vous pouvez changer vos raccourcis clavier pour être ce que vous voulez, non? Si vous voulez Ctrl + C / V comme copier-coller, continuez et ajoutez-les à vos raccourcis clavier. Si vous voulez Ctrl + Maj + C / V , vous pouvez également les utiliser. Si vous voulez alt + q comme copie et shift + 0 comme coller, allez-y.

À partir de la version 1.0, les valeurs par défaut incluent Ctrl + Maj + C / V comme copier-coller, et les nouveaux utilisateurs obtiendront _aussi_ Ctrl + C / V comme copier / coller dans leur fichier de paramètres.

ÉDITER:utilisez le sous-ensemble de ceux-ci que vous voulez:

{
  "keybindings": [
    // Ctrl+C / Ctrl+V for copy paste
    { "keys": "ctrl+c", "command": "copy"},
    { "keys": "ctrl+v", "command": "paste"},

    // Ctrl+Shift+C / Ctrl+Shift+V for copy paste
    { "keys": "ctrl+shift+c", "command": "copy"},
    { "keys": "ctrl+shift+v", "command": "paste"},


    // Disable Ctrl+Shift+C / Ctrl+Shift+V for copy paste
    { "keys": "ctrl+shift+c", "command": "unbound"},
    { "keys": "ctrl+shift+v", "command": "unbound"},
  ]
}

@ zadjii-msft oui, je le sais, et en tant que développeur, je peux le faire. Mais si vous souhaitez que Terminal remplace cmd.exe, vous devez résoudre ce problème.

Par curiosité, quelle partie de

À partir de la version 1.0, les valeurs par défaut incluent Ctrl + Maj + C / V comme copier-coller, et les nouveaux utilisateurs obtiendront _aussi_ Ctrl + C / V comme copier / coller dans leur fichier de paramètres.

est-ce que nous ne réparons pas cela?

Ctrl + Maj + C / V n'est pas naturel. Pas de menu contextuel non plus? Je trouve Windows Terminal utile, mais l'absence de menu et de Ctrl + C / V me fait reconsidérer mes options.

Ouais, ce fil a suivi son cours. Quiconque est enclin à faire des commentaires: lisez les quatre derniers commentaires. Cela dit tout ce que vous devez savoir.

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

Questions connexes

ghost picture ghost  ·  3Commentaires

NickITGuy picture NickITGuy  ·  3Commentaires

dev-logan picture dev-logan  ·  3Commentaires

carlos-zamora picture carlos-zamora  ·  3Commentaires

mrmlnc picture mrmlnc  ·  3Commentaires