2010-08-18 6 views
9

He estado usando vim durante varios meses y me he acostumbrado a usar C y D para cambiar y eliminar todo, desde el cursor hasta el final de la línea.¿Por qué Y hace lo mismo que yy?

en cuenta la línea de abajo, donde el cursor está en la 'b' en 'bar':

foo.bar("hello world") 

Golpear D en este punto Rendimiento:

foo. 

Mientras golpea C hará el el mismo más iniciar el modo de inserción con el cursor después del punto.

Sin embargo, presionar Y no hace lo mismo intuitivamente (copiar todo desde el cursor hasta el final de la línea). En su lugar, copia toda la línea (al igual que yy).

¿Cómo hago Y para copiar los caracteres del cursor al final de la línea en lugar de copiar toda la línea como yy?

+1

Esta pregunta también se ha formulado [en el intercambio de vi/Vim stack] (http://vi.stackexchange.com/q/6061/4676); es posible que encuentre las respuestas más útiles, ya que abordan mejor el * "por qué" *, en lugar de simplemente el * "cómo ajustarlo" * que se trata aquí. – Wildcard

Respuesta

4

nmap Y y$

hace eso lo que quiere?

EDITAR

La razón por la cual Y hace lo mismo que yy probablemente tiene algo que ver con esto:

{Visual}["x]y   Yank the highlighted text [into register x] (for 
         {Visual} see |Visual-mode|). {not in Vi} 

                 *v_Y* 
{Visual}["x]Y   Yank the highlighted lines [into register x] (for 
         {Visual} see |Visual-mode|). {not in Vi} 

Y está destinado a actuar sobre las líneas, y está destinado a actuar en personajes individuales?

+0

¡Gracias! ¿Alguna idea de por qué 'Y' no se comporta de la misma manera que' C' y 'D'? – advait

+0

@advait Ver edición. Realmente no estoy seguro. Brian podría estar en lo cierto, podría ser solo por razones históricas. –

7

De this configuration:

" make Y effect to end of line instead of whole line 
map Y y$ 

Sospecho que el comportamiento por defecto es simplemente debido a alguna inconsistencia histórica.

Cuestiones relacionadas