¿Hay alguna razón histórica específica para esto?
Antecedentes : (puede omitir esta parte si ya comprende la pregunta).
Como visabrán los usuarios intermedios / avanzados , yes el comando "tirar": tira (copia) el texto especificado por el siguiente comando de movimiento. * Por lo tanto, yetira hacia el final de la palabra, y0tira desde la posición del cursor hasta el comienzo de la línea, y_tira de toda la línea actual, y$tira de la posición del cursor al final de la línea actual, etc.
El dcomando (eliminar) y el comando c(cambiar) también se pueden usar con todos estos movimientos.
ddes sinónimo d_y elimina toda la línea actual. Del mismo modo, cces sinónimo de c_y cambiará la línea actual (es decir, eliminará todo el texto y lo pondrá en modo de inserción al comienzo de la línea). **
El comando "tirar" sigue esta convención; yytirará de toda la línea actual al igual que y_.
Hay otro conjunto de sinónimos: Des un sinónimo de d$y se eliminará de la posición del cursor hasta el final de la línea. Ces un sinónimo de c$y cambiará el texto desde la posición del cursor hasta el final de la línea, colocándolo en modo de inserción para escribir el nuevo texto.
Sin embargo, Yes otro sinónimo de yyo y_y tirará de toda la línea , no solo desde el cursor hasta el final de la línea, como cabría esperar de los patrones Cy D.
Entiendo que en Vim se mantuvo de esta manera para preservar la compatibilidad con versiones anteriores vi, como se menciona en la ayuda de Vim en :help Y:
Si desea que "Y" funcione desde el cursor hasta el final de la línea (que es más lógico, pero no compatible con Vi) use ": map Y y $".
Así que este es un remanente de vi. Multa.
Pero, ¿por qué el comando fue diseñado de esa manera en primer lugar? ¿Había alguna lógica en eso alguna vez?
* Específicamente coloca el texto en el registro 0 y señala el registro sin nombre en el registro 0.
** Aunque no es relevante para mi pregunta, Ses otro sinónimo de cco c_.