2010-03-04 14 views
19

¿Cómo puedo pegar algo en varias líneas?Cómo bloquear (¿columna?) Pegar en vim

que estoy tratando de lograr lo mismo que: En un texto existente, puedo <Cv> jjjjj <SI> HelloWorld <CR> tener HelloWorld inserta en 5 filas

pero en lugar de escribir HelloWorld Me gustaría obtener el texto de un registro. quiero primero tirar HelloWorld y luego insertarlo en 5 líneas.

+2

@sotto - stackoverflow es para cuestiones de programación. Su pregunta probablemente se migrará a SuperUser.com, que es un mejor foro para preguntas generales sobre el uso de la computadora. – Oded

+7

@Oded vim es una herramienta de programación como VS. ¿Cómo puede no estar relacionado? –

Respuesta

20

Cuando está en el modo de inserción, puede presionar Ctrl-R seguido de la letra del búfer que desea pegar. Luego solo presione Escape como de costumbre y se insertará el bloque como es normal.

+2

Entonces, según la respuesta de Doug a continuación, esto sería, después de tirar del texto que desea rellenar, ' jjI '' (suponiendo que hace un tirón normal, sin especificar un búfer). – naught101

3

Se podría utilizar una macro para hacer esto, al igual que [email protected]

qq inicia una macro con el nombre q

0 va al principio de la línea y P pastas del contenido de un tirón antes del cursor

j baja una línea y q termina la macro

[email protected] repite los q macro 4 veces

5

Digamos que usted tiene lo siguiente en una memoria intermedia vim:

1| Do the dishes 
2| Get milk 
3| Take out the trash 

y que desea insertar [ ] al comienzo de cada línea, por lo que se convierte en:

1| [ ] Do the dishes 
2| [ ] Get milk 
3| [ ] Take out the trash 

  1. vaya a la columna uno de la fila uno
  2. presione CTRL + V (selección de bloque)
  3. pulse j dos veces (a la fila tres). ahora la primera columna de líneas de uno, dos, y tres se seleccionan
  4. prensa I (shift + i - "I" mayúscula) - esto es "modo de inserción de bloque"
  5. tipo [ ]
  6. prensa esc (escape) se insertará
  7. texto en cada fila
Cuestiones relacionadas