whole visual blocks all vim

visual - Vim yank línea luego pegarlo en línea



vim select copy paste text (4)

Digamos que tengo las siguientes líneas:

thing(); getStuff();

Quiero tomar getStuff() usando y y , avanzar a thing() , colocando el cursor ( y presionar p , pero como tiré toda la línea, p getStuff() justo donde estaba.

Sé que puedes ^ D obtener la línea de getStuff() luego p hará lo que yo quiera. Sin embargo, creo que esto es mucho más tedioso que y y .

¿Hay alguna manera de y y pegar la línea en línea ?


El problema es que y y está copiando toda la línea, incluida la nueva línea. Una alternativa sería copiar desde el principio hasta el final de la línea, y luego pegar.

^ y $

  • ^ Ir al primer personaje de la línea.
  • y Yank till
  • $ Fin de línea.

// Crédito a: probador e Idan Arye para las mejoras de golf vim.


Un método menos eficiente, pero simple:

  • v para resaltar la (s) palabra (s),
  • y para tirar de la (s) palabra (s) resaltada (s),
  • p (al final de la línea) que desea pegar

Una forma de simplificar la rutina de operar en el mismo tipo de texto es definir asignaciones que imiten los comandos de selección de objetos de texto. Los dos pares de asignaciones siguientes -uno para el modo Visual y otro para el modo pendiente del operador- proporcionan una forma de seleccionar todo en la línea actual excepto el nuevo carácter de línea ( al ) y todo a partir del primer carácter no en blanco de la línea actual hasta el último carácter no en blanco incluido ( il ).

:vnoremap <silent> al :<c-u>norm!0v$h<cr> :vnoremap <silent> il :<c-u>norm!^vg_<cr> :onoremap <silent> al :norm val<cr> :onoremap <silent> il :norm vil<cr>

Entonces, en lugar de usar yy para copiar el contenido de una línea que se va a pegar en caracteres (y no en línea), uno puede usar yal o yil para jalar y p para pegar, como de costumbre.


Use y i w ("tirón de la palabra interna") en lugar de y y para tirar justo lo que quiera:

y y es un tirón en línea y atrapará toda la línea, incluido el retorno de carro, que puede ver si mira el registro sin nombre ( "" ) en :registers que se usa como fuente para las pastas. Ver :help "" :

Vim usa los contenidos del registro sin nombre para cualquier comando de poner (p o P) que no especifique un registro. Además, puede acceder a él con el nombre '''' ''''. Esto significa que debe escribir dos comillas dobles. Escribir en el '''' escribe para registrar ''''.

¡Un beneficio adicional para y i w es que no tiene que estar al frente de la "palabra" que está tirando!