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:
-
ctrl+V
+ teclas de flecha para seleccionar el bloque. -
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. -
ctrl+T
para aumentar la sangría octrl+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