Pregunta

¿Cómo duplico una línea completa en Vim de manera similar a Control+D en IntelliJ IDEA/Resharper o Control+Alt.+/ en eclipse?

¿Fue útil?

Solución

yy o Y para copiar la línea
o
dd para borrar (cortar) la línea

entonces

pag para pegar el texto copiado o eliminado después la línea actual
o
PAG para pegar el texto copiado o eliminado antes la línea actual

Otros consejos

Modo normal:ver otras respuestas.

El Ex forma:

  • :t. duplicará la línea,
  • :t 7 lo copiará después de la línea 7,
  • :,+t0 Copiará la línea actual y la siguiente al principio del archivo (,+ es sinónimo de rango .,.+1),
  • :1,t$ Copiará líneas desde el principio hasta la posición del cursor hasta el final (1, es sinónimo de rango 1,.).

Si necesita mover en lugar de copiar, utilice :m en lugar de :t.

Esto puede ser realmente poderoso si lo combinas con :g o :v:

  • :v/foo/m$ moverá todas las líneas que no coincidan con el patrón "foo" al final del archivo.
  • :+,$g/^\s*class\s\+\i\+/t. Copiará todas las líneas siguientes del formulario. class xxx justo después del cursor.

Referencia: :help range, :help :t, :help :g, :help :m y :help :v

YP o Yp o yyp.

copy and paste in vim

¡No hay nada más sencillo que esto!Desde el modo normal:

yy

luego muévase a la línea en la que desea pegar y

p

yy

Tirará de la línea actual sin eliminarla.

dd

eliminará la línea actual

pag

voluntad put una línea capturada por cualquiera de los métodos anteriores

Si quieres otra manera :-)

"ayy esto almacenará la línea en el buffer a

"ap esto pondrá el contenido del buffer a en el cursor.

Hay muchas variaciones sobre esto.

"a5yy esto almacenará las 5 líneas en el buffer a

ver http://www.vim.org/htmldoc/help.html para más diversión

Hacer esto:

Primero, yy para copiar la línea actual y luego pag pegar.

yypag - recuérdalo con "¡yippee!"

Varias líneas con un número entre ellas:

y7ypag

yypag - pegar después

yyPAG - pegar antes

También puedes probar <C-x><C-l> que repetirá la última línea del modo de inserción y te mostrará una ventana de finalización con todas las líneas.Funciona casi como <C-p>

Otra opción sería ir con:

nmap <C-d> mzyyp`z

le da la ventaja de preservar la posición del cursor.

Para alguien que no conoce vi, algunas respuestas de arriba podrían confundirlo con frases como "pegar...después antes línea actual".
En realidad es "pegar...después antes cursor".

yy o Y para copiar la línea
o
dd para borrar la línea

entonces

pag para pegar el texto copiado o eliminado después el cursor
o
PAG para pegar el texto copiado o eliminado antes el cursor


Para obtener más combinaciones de teclas, puede visitar este sitio: vi Lista completa de combinaciones de teclas

Me gusta:Cambio+v (para seleccionar toda la línea inmediatamente y permitirle seleccionar otras líneas si lo desea), y, p

1 te tengo:cuando usas "p" para poner la linea, la pone después la línea en la que está el cursor, por lo que si desea agregar la línea después de la línea que está tirando, no mueva el cursor hacia abajo una línea antes de colocar la nueva línea.

El valor predeterminado es yypag, pero he estado usando esta vinculación durante aproximadamente un año y me encanta:

" set Y to duplicate lines, works in visual mode as well. nnoremap Y yyp vnoremap Y y`>pgv

Sé que llego tarde a la fiesta, pero como sea;Tengo esto en mi .vimrc:

nnoremap <C-d> :copy .<CR>
vnoremap <C-d> :copy '><CR>

el :copy El comando simplemente copia la línea seleccionada o el rango (siempre líneas completas) debajo del número de línea dado como argumento.

En modo normal lo que hace es copy . Copie esta línea justo debajo de esta línea..

Y en modo visual se convierte en '<,'> copy '> copiar desde el inicio de la selección hasta el final de la selección a la línea debajo del final de la selección.

Para aquellos que comienzan a aprender vi, aquí hay una buena introducción a vi enumerando los comandos vi uno al lado del otro para el movimiento típico del cursor del Editor GUI de Windows y las teclas de acceso directo.Enumera todos los comandos básicos, incluidos yy (copiar línea) y pag (pegar después) o PAG(pegar antes).

vi (Vim) para usuarios de Windows

Si desea duplicar una línea y pegarla inmediatamente debajo del me gusta actual, como en Sublime Control+Cambio+D, entonces puedes agregar esto a tu .vimrc archivo.

imap <S-C-d> <Esc>Yp

Me gusta usar este mapeo:

:nnoremap yp Yp

porque lo hace consistente para usarlo junto con el nativo YP dominio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top