tutorial commands vim

commands - vim linux



Tabbing selección visual en VIM (9)

Con selección de bloque visual

Pasos:
Seleccione el bloque ( Ctrl + v )
tipo c (cambio)
escriba el espacio necesario
tipo esc

En muchas GUIs cuando selecciono una sección de texto y luego presiono el botón Tabulador o Mayús + Tabulador, la sección seleccionada sangrará dentro o fuera.

En VIM puedo seleccionar una sección visual y luego presionar la tecla < o > para cambiar la sangría, sin embargo, una vez que presiono la tecla < se borra mi selección, entonces estoy atascado seleccionando la sección nuevamente y presionando <de nuevo. Esto se vuelve realmente molesto cuando intento sangrar algo, algunos se detienen y quieren comentarios visuales.

¿Hay alguna forma de insertar y quitar sangrías en vim mientras se mantiene seleccionado el texto seleccionado?

¿Hay algún truco para reasignar Tab y Shift + Tab para que se comporten de esta manera en modo visual?


Desde que abandoné vi a vim, nunca he usado> ni <de nuevo. Aprovecho la sangría automatizada de vim que se puede activar explícitamente con =

Funciona muy bien con movimientos como = a {que es incluso más eficiente que =%

De lo contrario, si uno> no es suficiente, simplemente vuelva a ejecutarlo con., O deshaga el cambio con u.


El siguiente mapa clave funciona como la solución de Brian, pero también mantiene la posición del cursor relacionada con la palabra.

" tap indent movement (use mark `m'' for cursor position) vmap <S-Tab> mm<`m:<C-U>exec "normal ".&shiftwidth."h"<CR>mmgv`m vmap <Tab> mm>`m:<C-U>exec "normal ".&shiftwidth."l"<CR>mmgv`m


Intenta usar "." para repetir el comando. Recuerda el rango, y puedes usar "u" para deshacer un nivel si vas demasiado lejos. No se necesita configuración


O bien, puede ir al corsé más cercano y escribir =% en el modo normal - sangra el bloque cubierto por el corsé y su correspondiente. Pero no estoy seguro de cómo esto es útil en un lenguaje como Python.


Otra forma es seleccionar un bloque e insertar una sangría al comienzo de la línea usando esta secuencia:

  1. ctrl+V + teclas de flecha para seleccionar el bloque.
  2. I para cambiar al modo de inserción de modo que el texto insertado se inserte al comienzo de la selección en cada línea del bloque seleccionado.
  3. ctrl+T para aumentar la sangría o ctrl+D para disminuir la sangría. Puede agregar cualquier cantidad de sangrías como esta. Nota: La sangría se verá solo en la primera línea del bloque, pero cuando se salga del modo de inserción, la sangría se replicará en todas las líneas del bloque.

Pruebe >} para ''sangrar el siguiente párrafo un nivel''.


Puedes prefijar un número, es decir. "2>" para sangrar dos tabulaciones. O bien, puede usar ">" para sangrar una vez, luego "." para sangrar de nuevo (esto funciona aunque el bloque ya no esté resaltado). Si vas demasiado lejos, "u" deshace un paso a la vez.

Otro comando útil es "gv" para restaurar el último bloque visual, si necesita aplicar un comando diferente.


vmap <Tab> >gv vmap <S-Tab> <gv