¿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_.

Respuestas:
Encontré un artículo "Introducción a la edición de pantallas con Vi" de William Joy (creador de vi) y Mark Horton (mantenedor de vi desde 1979).
Del documento está claro que el comportamiento predeterminado de Y no es un error, sino una característica deseada. En la sección "Reorganizar y duplicar texto" mencionan esto:
Más adelante en la lista de comandos (vea el apéndice en la versión pdf ), la descripción de Y es esta:
De esta manera, estoy seguro de que Y fue una característica y no un error.
En cuanto a la inconsistencia con
DyC- También tengo una explicación lógica. Si intenta pensar como autor de un editor de texto, su deseo principal sería crear un nuevo texto y no eliminarlo. Ellos (los autores del editor de texto) quieren que sus usuarios escriban más texto y más y más ...Así que para los comandos de azúcar sintáctica (y
Y,DyCson una especie de azúcar sintáctico porque ya duplican las características existentes) que elijan las operaciones que añaden tanto texto como sea posible (Yduplica toda la línea) o Delete menos texto como sea posible (DyCborrar hasta el final de la línea y no toda la línea).fuente
YP; eso es rápido y fácil de escribir. Estoy convencido. ;)Yfue el comando de extracción de la primera versión vi (ex-1.1, 1 de enero de 1978). Esta versión no tenía elyycammand. ex-2.2 (6 de mayo de 1979) tenía ambosyyyY. Entonces, en realidadyyes sinónimo deY(Ypredatesyy).fuente
Yno sigue la misma lógica que los otros comandos porque es anterior a la cosa para la que luego se volvió a configurar como abreviatura.