Y a-t-il une raison historique spécifique à cela?
Contexte - (vous pouvez ignorer cette partie si vous comprenez déjà la question.)
Comme intermédiaire / avancé viutilisateurs savent, yest la commande il Yanks « Yank » (copies) le texte spécifié par la commande de mouvement suivant. Ainsi yeyanks à la fin du mot, y0yanks de la position du curseur au début de la ligne, y_tire sur toute la ligne actuelle, y$tire de la position du curseur à la fin de la ligne actuelle, etc.
La dcommande (supprimer) et la commande c(modifier) peuvent également être utilisées avec toutes ces requêtes.
ddest synonyme d_et supprime l'intégralité de la ligne actuelle. De même, ccest synonyme de c_et changera la ligne actuelle (c'est-à-dire qu'il supprimera tout le texte et vous mettra en mode insertion au début de la ligne). **
La commande "yank" suit cette convention; yytirera la ligne actuelle entière comme y_.
Il existe un autre ensemble de synonymes: Dest un synonyme de d$et sera supprimé de la position du curseur jusqu'à la fin de la ligne. Cest synonyme de c$et changera le texte de la position du curseur à la fin de la ligne, vous plaçant en mode insertion pour taper le nouveau texte.
Cependant, Yest un autre synonyme de yyou y_et tirera sur toute la ligne , pas seulement du curseur jusqu'à la fin de la ligne, comme vous pouvez vous y attendre des modèles Cet D.
Je comprends que dans Vim, il a été conservé de cette façon pour préserver la compatibilité descendante avec vi, comme cela est mentionné dans l'aide de Vim sous :help Y:
Si vous aimez que "Y" fonctionne du curseur à la fin de la ligne (ce qui est plus logique, mais pas compatible avec Vi), utilisez ": map Y y $".
Il s'agit donc d'un reliquat de vi. Bien.
Mais pourquoi le commandement a-t-il été conçu de cette façon en premier lieu? Y avait-il jamais une logique?
* Plus précisément, il place le texte dans le registre 0 et pointe le registre sans nom sur le registre 0.
** Bien que cela ne soit pas pertinent pour ma question, Sest un autre synonyme de ccou c_.