如何使用 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 = bar
到x = foo + a
。
答案1
您可以用来:-1,+1norm zF
指定要折叠的行的相对范围。 (在上面 1 行和下面 1 行的情况下,您可以省略1
该命令中的 s 并仅使用:-,+norm zF
)。
如果您愿意安装插件,那么有
vim 缩进对象它给出了“缩进对象”,例如nside ndent 和 round
ii
ndent i
(i
等等ai
)。然后你可以做类似的事情。a
i
zfii