- Le couper-coller classique traite le déplacement de texte en deux opérations distinctes, ce qui rend une annulation complète impossible et modifie inutilement le flux du document
- Même si l’on annule une coupe, le contenu du presse-papiers écrasé n’est pas restauré, et même avec un gestionnaire de presse-papiers, on ne rétablit pas l’ensemble des changements produits par une seule frappe
- Comme le texte disparaît immédiatement, le document est recomposé ; il faut donc retrouver l’endroit où coller, et annuler l’ensemble du déplacement demande au minimum deux annulations
- Le Ghost Cut d’Ishmael, un éditeur de romans, désactive visuellement la sélection avec
Ctrl+Xen l’estompant, puis lors du collage la retire de son emplacement d’origine pour la déplacer vers le nouvel emplacement dans le cadre d’une opération atomique unique - Ghost Cut n’écrase pas le presse-papiers et permet d’annuler tout le déplacement en une seule fois, mais pour effectuer seulement une coupe à l’ancienne, il faut copier puis appuyer sur
Backspace
Fonctionnement du couper-coller traditionnel
- Le couper-coller combine une coupe, qui retire le texte sélectionné du document pour le placer dans le presse-papiers, et un collage, qui l’insère à un autre endroit
- On le perçoit comme une seule opération consistant à déplacer du texte d’un endroit à un autre, mais dans les éditeurs il est en réalité traité comme deux actions séparées
Les trois défauts du couper traditionnel
-
L’annulation ne peut pas restaurer le presse-papiers
- Après une coupe, si l’on appuie sur
Ctrl+ZouCommand+Z, le texte du document est restauré, mais le contenu du presse-papiers qui a été écrasé ne revient pas - Même avec un gestionnaire de presse-papiers, cela ne revient pas à annuler proprement tous les changements produits par une seule frappe
- Après une coupe, si l’on appuie sur
-
La suppression du texte réorganise immédiatement le document
- Au moment où l’on coupe le texte, le contenu restant se resserre et les lignes ainsi que les positions dans le document sont réagencées
- Dans la plupart des cas, le but du couper-coller est de déplacer du texte, mais avant même d’avoir trouvé où le coller, l’écran a changé et il faut retrouver l’emplacement
- Le coût peut sembler faible, mais cela ajoute une charge cognitive inutile
-
Le déplacement n’est pas traité comme une opération atomique
- Si l’on annule le collage, seul le texte inséré au nouvel emplacement est supprimé ; pour le restaurer à sa position d’origine, il faut annuler une fois de plus
- S’il y a eu entre la coupe et le collage des modifications comme la création d’un nouveau paragraphe, il faut d’abord remonter ces opérations une à une avant de pouvoir restaurer la coupe initiale
- Conceptuellement, il s’agit d’un seul déplacement de texte, mais dans l’historique d’édition il est fragmenté en plusieurs étapes
Comment fonctionne Ghost Cut
- Dans Ishmael, lorsque l’on appuie sur
Ctrl+X, le texte sélectionné s’estompe et passe en état désactivé, tout en restant visible dans le document- Cette zone ne peut pas être cliquée et le curseur la saute
- À ce stade, rien n’est enregistré dans le presse-papiers et aucune action annulable n’est créée
- En appuyant sur
Escape, le texte redevient modifiable
- Lorsque l’on appuie sur
Ctrl+VouCommand+V, la zone estompée est retirée de sa position d’origine puis déplacée à la position actuelle du curseur- L’ensemble du déplacement constitue une opération atomique unique, qui peut donc être annulée en une seule fois
- C’est comparable à la manière dont Excel affiche en grisé les cellules coupées, mais il est difficile de trouver la même approche dans un éditeur de texte
- Si l’on a besoin du comportement de coupe traditionnel, il faut d’abord copier avec
Ctrl+CouCommand+C, puis supprimer le texte d’origine avecBackspace - Dans les éditeurs de code, le problème de reflow du document est moins marqué, donc l’intérêt est relativement plus faible, mais si cette fonction était proposée dans VSCode, elle vaudrait la peine d’être activée
1 commentaires
Avis sur Hacker News
J’aimerais qu’on arrête de perturber la sélection/collage de X11. Aujourd’hui, pour l’utiliser comme avant, il faut presque jouer à pile ou face pour savoir s’il faut maintenir Shift
Le schéma
sélection → Ctrl+C → clic → Ctrl+V, qui oblige à utiliser à la fois la souris et le clavier pour copier-coller, est barbare, et les applis modernes abîment ce que X11 avait bien implémentéCouper et coller, ce sont trois actions : couper consiste à copier puis supprimer. De même qu’annuler ne défait pas une copie, le contenu du presse-papiers après un couper ne devrait pas être annulé ; j’utilise tous les jours le fait de couper, annuler, puis coller plusieurs fois
Avec Ghost Cut, que devrait-on obtenir si on colle plusieurs fois ? L’éditeur devrait-il lire le presse-papiers sans même coller, juste pour faire un rollback ? Et s’il contient une clé secrète, est-ce qu’elle serait exposée à une extension comme Copilot ?
Dans l’explorateur de fichiers, couper revient en réalité à indiquer successivement une source et une destination pour un déplacement ; il n’existe pas vraiment de presse-papiers du système de fichiers, et on a rarement besoin de coller à plusieurs endroits. Ce n’est pas que la sémantique proposée soit mauvaise, mais ce serait plus propre comme fonctionnalité distincte, avec un raccourci dédié, qui grise le texte puis le déplace de façon atomique
Annuler un couper sans annuler ses effets de bord est un défaut fondamental ; une annulation ne devrait pas seulement reculer de quelques étapes selon le contexte, mais restaurer le système à son état précédent
⌘+C, puis soit le déplacer avec⌘+⌥+V, soit le copier avec⌘+Và la destination — serait critiqué. C’est justement le plus intuitif, puisque l’action se décide à la destinationWindows affiche aussi les fichiers coupés en grisé et les déplace au collage pour éviter les pertes de fichiers, mais cette bonne expérience utilisateur n’est pas assez reconnue
Ghost Cut ressemble beaucoup au couper/coller d’Excel, et il pourrait même ne pas utiliser le presse-papiers du tout. Un logiciel classique le considère comme copie-collage avec suppression ajoutée, tandis que l’auteur — comme Excel — le voit comme un déplacement de contenu à l’intérieur du document
Ghost Cut impose toutefois qu’il n’y ait qu’une seule destination précise, et qu’elle soit dans le même programme ou le même document. Cela dit, si le couper actuel n’est au fond qu’une variante du copier-coller, alors
copier puis Backspaceproduit le même effet ; passer à Ghost Cut ne semble donc pas faire perdre grand-choseLe problème n’est pas un défaut du couper par défaut, mais le fait que son expérience utilisateur ne corresponde pas au modèle mental personnel de l’auteur. Si on a coupé par erreur, on voulait généralement copier ; il est donc raisonnable de laisser le texte dans le presse-papiers
La plupart des gens comprennent l’annulation comme l’annulation des modifications du fichier, pas comme un retour en arrière simultané de l’état du fichier et de l’OS. Un couper configurable peut valoir le coup, mais cela ressemble davantage à une alternative adaptée à une minorité qu’à la majorité des utilisateurs
Couper consiste à déplacer du texte vers le presse-papiers, qui est une application distincte de l’application courante. De même qu’on ne s’attend pas à ce qu’une annulation dans l’app B modifie aussi l’app A après y avoir fait un changement, on ne s’attend pas à ce qu’annuler affecte le presse-papiers
Ghost Cut ressemble à Excel, et c’est justement pour cela qu’il me déroute souvent. Dans Excel, il arrive qu’après avoir copié des cellules puis modifié quelque chose avant de coller, on découvre que la copie n’était pas une vraie valeur copiée mais une référence à la sélection ; si cette zone a changé ou a été annulée, il devient parfois impossible de coller quoi que ce soit
Si on repartait de zéro, les critiques de l’actuel couper/coller seraient raisonnables. En revanche, affirmer que comme couper et coller sont deux actions, une seule annulation devrait annuler les deux, paraît étrange
C’est un peu comme un choix de type RISC/CISC : a-t-on une seule commande
CUTANDPASTE, ou bien deux commandes séparées,CUTetPASTE?Il ne faut pas changer le comportement attendu. Excel fonctionne un peu comme ça, et c’est extrêmement pénible précisément parce que ça ne fait pas ce qu’on attend
Couper doit immédiatement placer le contenu dans le presse-papiers pour pouvoir aussi le coller dans d’autres programmes ; ça ne vaut pas le coup de casser les attentes et les usages normaux de la majorité pour améliorer l’expérience d’une minorité
Si
Ctrl+Xne touche pas au presse-papiers, on ne peut même plus coller dans un autre programme. Le gain est trop faible par rapport aux ennuis créés dès qu’on sort du flux idéalCe point de vue se défend, mais j’ai du mal à être d’accord. J’aimerais plutôt qu’on règle d’abord le détournement de copie, quand un site ou une appli, sous prétexte d’aider, met dans le presse-papiers quelque chose de totalement différent de ce qu’on a sélectionné
Quand je copie une URL, je ne veux pas non plus que le navigateur ajoute arbitrairement
https://Windows Explorer se comporte un peu de cette manière quand on coupe des fichiers, mais il écrit aussi dans le presse-papiers
Ghost Cut est donc lui aussi cassé, simplement d’une manière différente du comportement existant, même si elle correspond davantage aux préférences de l’auteur. Cela reste une idée intéressante, parce qu’elle fait réfléchir à la manière dont les autres applis auraient évolué si couper/coller n’avait pas été conçu comme une fonction globale du système et inter-applications
Je pense que je n’aimerais pas cette approche. Dans le même genre, Excel est l’application que je déteste le plus pour couper/copier/coller
Couper est en général un déplacement atomique qui se termine par un seul collage, donc toutes les références concernées sont mises à jour, qu’elles pointent à l’intérieur ou à l’extérieur de la zone déplacée, et qu’elles soient relatives ou absolues. C’est aussi pour cela que l’indication disparaît après collage et qu’on ne peut pas coller deux fois
À l’inverse, lors d’une copie, seules les références relatives entre les cellules copiées sont mises à jour ; les références absolues ou celles vers des cellules non copiées ne changent pas, et on peut coller plusieurs fois. Si l’on prend même en compte les références de plage, c’est déjà étonnant que tout cela fonctionne de manière aussi prévisible, et la contrainte qui annule l’opération quand on modifie la zone d’origine reste compréhensible. Donc, dans Excel, copier puis supprimer n’est pas équivalent à couper
Il aurait fallu conserver le couper par défaut et attribuer ce déplacement spécial à
Ctrl+Shift++