¿Cómo puedo doblar cada línea con la misma sangría que la línea actual (la línea en la que se encuentra el cursor) usando el plegado manual en vim?
Básicamente, a veces necesito que Vim doble las cosas tal como lo haría Vim cuando
foldmethod=indent
, pero prefiero trabajar con él foldmethod=manual
y no lo cambiaré.
Por ejemplo:
function f(x)
while (x > a)
foo = bar
someStuff() // suppose cursor is here
x = foo + a
end
if (x < b)
x = b // this line should not be indented
end
end
En este caso, debería doblar las líneas foo = bar
a x = foo + a
.
Respuesta1
Podría utilizar :-1,+1norm zF
para especificar un rango relativo de líneas para plegar. (En el caso de 1 línea arriba y otra debajo, puede omitir la 1
s en ese comando y simplemente usar :-,+norm zF
).
Si está dispuesto a instalar un complemento, existe
objeto-sangría-vimlo que proporciona ' objetos de sangría' como ii
nside i
ndent i
y ai
round ndent (entre otros). Entonces podrías hacer algo como .a
i
zfii