Vim: ¿cómo doblar manualmente un bloque con sangría?

Vim: ¿cómo doblar manualmente un bloque con sangría?

¿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=manualy 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 = bara x = foo + a.

Respuesta1

Podría utilizar :-1,+1norm zFpara especificar un rango relativo de líneas para plegar. (En el caso de 1 línea arriba y otra debajo, puede omitir la 1s 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 iinside indent iy airound ndent (entre otros). Entonces podrías hacer algo como .aizfii

información relacionada