RESUMEN RÁPIDA DE LA RESPUESTA: Voy a poner la respuesta aquí en forma simple. Hay tantos comentarios que este hilo se está ahogando. 1) Verifique si tiene + visualextra habilitado en su versión de Vim, escribiendo: ver en Vim. 2) Se inserta marcando primero las cosas que desea editar y luego presiona I (mayúscula i) - en minúsculas no funcionaré. 3) Una vez que haga eso, es posible que parezca que solo está insertando en la primera línea, pero cuando haya terminado, presione ESC y j, luego el texto se copia en las otras líneas. Así es para mí.
Zeth
Respuestas:
202
Prueba esto
Después de seleccionar un bloque de texto, presione Shift+ io mayúscula I.
Las minúsculas ino funcionarán.
Luego escriba las cosas que desea y finalmente para aplicarlo a todas las líneas, presione Escdos veces.
Si esto no funciona ...
Compruebe si ha +visualextrahabilitado en su versión de Vim.
Puede hacerlo escribiendo :very desplazándose por la lista de características. (Es posible que desee copiarlo y pegarlo en un búfer y realizar una búsqueda incremental porque el formato es extraño).
Habilitarlo está fuera del alcance de esta pregunta, pero estoy seguro de que puedes encontrarlo en algún lugar.
También debe presionar escape para salir del modo de inserción antes de que el texto se duplique.
Brandon Joyce
19
¿Alguien ha visto que esto no funciona? Tengo una configuración vim no modificada en CentOS. Presiono ctrl + v, presiono ja varias veces y veo que el cursor resalta el primer carácter de unas pocas líneas. Presiono shift + i. El cursor se mueve al primer carácter de la primera línea, pero vuelvo al modo normal. Sé esto porque si presiono "a", mueve el personaje a la derecha y dice "- INSERTAR -". Si escribo algunos caracteres y presiono escape, no se aplica a las otras líneas.
Tyler Collier
2
@ TylerCollier Estoy experimentando el problema en Ubuntu 14.04 en digitalocean. Por favor comente si ha encontrado una solución.
Zack Burt
2
@ZacharyBurt El vim predeterminado instalado con Ubuntu 14.04 (instalado como vi) no incluye la visualextrafunción, por lo que la inserción de bloque no funcionará allí. sudo apt-get install vimtrae una versión más completa, en la que visualextrase activa. @TylerCollier Este también puede ser el mismo problema en su instalación de CentOS: verifique la salida de vim --versionpara ver la lista completa de características activadas.
Gabriel Grant
40
presione ctrl y v // inicio seleccione
presione Mayús y yo // luego escriba cualquier texto
Después de presionar ctrl + v, puede presionar jpara seleccionar rápidamente las líneas debajo de la posición actual, o presionar kpara seleccionar rápidamente las líneas arriba de la posición actual. También puede usar la shifttecla con los errores upo downpara hacer la selección.
tyler.frankenstein
1
De todas las respuestas, esta es la única que funcionó para mí. Estoy en una Mac usando la instalación de preparación
Daniel Kaplan
He estado quejando durante años que no podía fácilmente i nsert (como c ambio) en el bloque seleccionar. Entonces es con una capital i, estoy asombrado. He estado usando :normal iINPUT<CR>para ingresar al principio de las líneas. Muchas gracias por esto!
Tim Visée
No creo que necesites presionar esc dos veces. Si presiona algo después de esc, actualizará automáticamente el texto. Si no, lo hará en medio segundo más o menos.
Shahbaz
29
También puede tener un caso de uso en el que desea eliminar un bloque de texto y reemplazarlo.
Me gusta esto
Hello World
Hello World
Puede seleccionar el bloque visual antes de "W" y presionar Shift+ i- Escriba "Cool" - Presione ESCy luego elimine "Mundo" mediante la selección del bloque visual.
Alternativamente, la mejor manera de hacerlo es simplemente seleccionar el bloque visual "Mundo" en ambas líneas. Escriba cpara change. Ahora estás en el insertmodo. Inserta las cosas que quieras y presiona ESC. Ambos se reflejan con menos pulsaciones de teclas.
Respuestas:
Prueba esto
Después de seleccionar un bloque de texto, presione Shift+ io mayúscula I.
Las minúsculas ino funcionarán.
Luego escriba las cosas que desea y finalmente para aplicarlo a todas las líneas, presione Escdos veces.
Si esto no funciona ...
Compruebe si ha
+visualextra
habilitado en su versión de Vim.Puede hacerlo escribiendo
:ver
y desplazándose por la lista de características. (Es posible que desee copiarlo y pegarlo en un búfer y realizar una búsqueda incremental porque el formato es extraño).Habilitarlo está fuera del alcance de esta pregunta, pero estoy seguro de que puedes encontrarlo en algún lugar.
fuente
A
también!vi
) no incluye lavisualextra
función, por lo que la inserción de bloque no funcionará allí.sudo apt-get install vim
trae una versión más completa, en la quevisualextra
se activa. @TylerCollier Este también puede ser el mismo problema en su instalación de CentOS: verifique la salida devim --version
para ver la lista completa de características activadas.fuente
ctrl + v
, puede presionarj
para seleccionar rápidamente las líneas debajo de la posición actual, o presionark
para seleccionar rápidamente las líneas arriba de la posición actual. También puede usar lashift
tecla con los erroresup
odown
para hacer la selección.i
, estoy asombrado. He estado usando:normal iINPUT<CR>
para ingresar al principio de las líneas. Muchas gracias por esto!También puede tener un caso de uso en el que desea eliminar un bloque de texto y reemplazarlo.
Me gusta esto
Puede seleccionar el bloque visual antes de "W" y presionar Shift+ i- Escriba "Cool" - Presione ESCy luego elimine "Mundo" mediante la selección del bloque visual.
Alternativamente, la mejor manera de hacerlo es simplemente seleccionar el bloque visual "Mundo" en ambas líneas. Escriba cpara
change
. Ahora estás en elinsert
modo. Inserta las cosas que quieras y presiona ESC. Ambos se reflejan con menos pulsaciones de teclas.fuente
ESC
luego toda la línea marcada mostrará el carácter que escribes.si desea agregar texto nuevo antes o después de la columna seleccionada:
fuente
jj
propagar los cambios a todas las líneas a continuación fue lo último que me faltaba!jj
es un asesino!