C'è una ragione storica specifica per questo?
Sfondo - (puoi saltare questa parte se hai già capito la domanda.)
Come visapranno gli utenti intermedi / avanzati , yè il comando "yank", che tira (copia) il testo specificato dal seguente comando di movimento. * Quindi, yetira alla fine della parola, y0tira dalla posizione del cursore all'inizio della riga, y_strappa l'intera linea corrente, y$strappa dalla posizione del cursore alla fine della linea corrente, ecc.
Il dcomando (elimina) e il comando c(modifica) possono entrambi essere usati anche con tutti questi movimenti.
ddè sinonimo di d_ed elimina l'intera riga corrente. Allo stesso modo, ccè sinonimo di c_e cambierà la riga corrente (cioè eliminerà tutto il testo e ti metterà in modalità di inserimento all'inizio della riga). **
Il comando "yank" segue questa convenzione; yystrapperà l'intera linea corrente proprio come y_.
Esiste un altro insieme di sinonimi: Dè sinonimo di d$e verrà eliminato dalla posizione del cursore alla fine della riga. Cè sinonimo di c$e cambierà il testo dalla posizione del cursore alla fine della riga, mettendoti in modalità di inserimento per digitare il nuovo testo.
Tuttavia, Yè un altro sinonimo di yyo y_e strapperà l' intera linea , non solo dal cursore alla fine della linea come ci si aspetterebbe dai modelli Ce D.
Comprendo che in Vim è stato mantenuto in questo modo per preservare la retrocompatibilità con vi, come è menzionato nella guida di Vim sotto :help Y:
Se ti piace "Y" per lavorare dal cursore alla fine della riga (che è più logico, ma non compatibile con Vi) usa ": map Y y $".
Quindi questo è un passaggio da vi. Belle.
Ma perché il comando è stato progettato in questo modo in primo luogo? C'è mai stata una logica ad esso?
* In particolare inserisce il testo nel registro 0 e punta il registro senza nome sul registro 0.
** Anche se non è rilevante per la mia domanda, Sè un altro sinonimo di cco c_.