Tengo algunos códigos copiados de Internet que tienen sangría de 2 espacios y quiero cambiarlos a sangría de 4 espacios. Me pregunto si hay una rutina vim corta para realizar la tarea sin tener que escribir un script vim. Así es como lo estoy haciendo actualmente con un archivo HTML:
- Grabar una macro
- Ir al principio de una línea
- Visual seleccione todos los espacios en blanco hasta la primera aparición de "<"
- Tira y pega todos los espacios en blanco (básicamente para doblarlos)
- Reproducir la macro hasta el final del archivo
En breve qa0vt<yp<esc>jq
Escollos:
La macro falla para una línea en blanco o una línea que no comienza con "<". Y no tengo idea de cómo extender esta solución a archivos que no son HTML.
ts
: =tabstop
,sts
: =softtabstop
y[no]et
: =[no]expandtab
.retab
útil el argumento y por qué no podemos usarlo para esta tarea?:set sts=2 noet
y,:retab! 2
por lo tanto, sería un poco más corto (aunque quizás menos legible) de esa manera.:set ts=2 sts=2 noet | retab! | set ts=4 sts=4 et | retab!
y luego úsalos@:
en diferentes archivos para aplicar rápidamente la misma acción.