Cómo copiar desde la posición actual hasta el final de la línea en vi

102

Yo uso gvim en Windows. Cómo copiar texto desde la posición actual al final de la línea en vi y pegarlo en otro archivo abierto en vi. Lo busqué en Google pero no puedo encontrar ninguna solución para esto. Agradezco cualquier ayuda en esto. Gracias.

javalearner
fuente

Respuestas:

155

El comando en modo normal para moverse al final de la línea es $.

Puede copiar hasta el final de la línea con y$y pegar con p.

Para copiar / pegar entre diferentes instancias, puede usar el portapapeles del sistema seleccionando el *registro, de modo que los comandos se conviertan en "*y$para copiar y "*ppegar.

$ moverse a la línea

$

y$ tirón a la línea

y,$

"*y$ seleccionar portapapeles-registrar yank-to-linebreak

", *, y,$

"*p seleccionar pasta de registro de portapapeles

", *,p

Consulte :h registerspara obtener más información.

Don Reba
fuente
Gracias. pero quiero pegar el contenido en 'otro archivo' abierto en vi. Esto funciona solo con el mismo archivo.
javalearner
4
Funcionará para cualquier archivo abierto dentro de la misma instancia. Puede copiar al portapapeles del sistema seleccionando el registro *(o +).
Don Reba
¿Por qué los registros del sistema no puede trabajar ... No puedo copiar el contexto en el file1que file2. Todavía necesito usar el mouse. ¿Cuál podría ser la razón probablemente?
Alston
8
Por lo general, uso Dpara cortar desde la posición actual hasta el final y ppegar (recuperar) los datos originales, y luego moverme a otro lugar para pegar los datos extraídos. Simplemente porque es mucho más fácil de escribir Dque y$.
neevek
1
@PhilipRego, es y$, sin punto y coma.
Don Reba
45

Si no desea incluir el salto de línea con el tirón, puede usar yg_. (O en tu caso, "*yg_)

Básicamente, solo reconozca que hay una diferencia entre $y en cuanto al g_movimiento. Me ha ayudado en numerosas ocasiones.

Kenny
fuente
3
¿Hay alguna forma de intercambiar g_y $? Rara vez o nunca necesito incluir el salto de línea en los movimientos.
Jonathan Dumaine
1
¡SI! la nueva línea adicional me está volviendo loco. Esta es la información necesaria.
javadba
6
@JonathanDumaine en su $MYVIMRCagregar la líneanmap $ g_
thedanotto
@thedanotto, hermosa persona
Jonathan Dumaine
9

Agregue esta línea a su .vimrc

" Make Y yank till end of line
nnoremap Y y$

Más en mi vimrc .

Andy Ray
fuente
3

Una solución diferente: Dpy pégala con p. De hecho, esto primero se elimina al final de la línea y se vuelve a pegar en la misma ubicación. Pégalo en otro lugar con p.

Daniel Porumbel
fuente
1
¿Por qué no Du y dejar el archivo sin modificar? (nota: esto incluye una nueva línea)
gen