Vim:如何手动折叠缩进块?

Vim:如何手动折叠缩进块?

如何使用 vim 中的手动折叠以与当前行(光标所在的行)相同的缩进折叠每一行?

基本上,有时我需要 Vim 折叠东西,就像 Vim 在 时所做的那样 foldmethod=indent,但我更喜欢使用它foldmethod=manual并且不会改变它。

例如:

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

在这种情况下,它应该将行折叠foo = barx = foo + a

答案1

您可以用来:-1,+1norm zF指定要折叠的行的相对范围。 (在上面 1 行和下面 1 行的情况下,您可以省略1该命令中的 s 并仅使用:-,+norm zF)。

如果您愿意安装插件,那么有 vim 缩进对象它给出了“缩进对象”,例如nside ndent 和 round iindent ii等等ai)。然后你可以做类似的事情。aizfii

相关内容