No he tenido mucha ocasión de usarlo todavía, pero el vim-indent-object de Michael Smith parece que puede estar cerca de lo que desea.
Ejemplo de uso (los números de línea que se muestran al igual que con set number
activo):
1 This is
2 some text
3 with multiple
4 levels of
5 indentation.
6 There is also
7 another stanza.
Con el cursor en la línea 2, 4 o 5, tipo Vii
para seleccionar las líneas 2 a 5.
Con el cursor en línea 3, tipo Vai
para seleccionar las líneas 2 a 3.
Con el cursor en la línea 3, escriba Vaiii
(o Viiii
), para seleccionar las líneas 2 a 5 (en modo visual, los usos múltiples de los objetos de indentación amplían la selección al siguiente nivel subir).
Los objetos de texto que define son:
ai
: el nivel de sangría actual más la línea anterior
útil cuando se quieren agarrar la línea de introducción (por ejemplo, agarrar el if
y su bloque “y luego”)
ii
: el nivel
aI
indentación actual: el nivel actual de indentación más la una línea por encima y una línea por debajo de
USEF ul para lenguajes que usan enunciados "finales": if
/endif
).
iI
: el nivel de sangría actual (efectivamente, ii
, y iI
son los mismos)
Los objetos también se pueden utilizar con otros comandos que esperan los objetos de texto (es decir cii
para borrar el nivel de sangría actual y de inicio insertando su reemplazo).
posible duplicado de [Mark block basado en el nivel de sangrado en Vim] (http://stackoverflow.com/questions/7377771/mark-block-based-on-indentation-level-in-vim) –