VIM折叠功能适用于除某些内容之外的所有内容

9

一段代码有2000行,其中有折叠。我在Visual模式下选择一个特定的块进行编写。然而,周围的折叠之类的东西会干扰我的写作,我很容易不小心修改它们。目前,我通过在单独的vim中编写该块来避免这样的错误。这不是一个真正的解决方案,并且打开太多的vim会变得很麻烦。

如何隐藏除了折叠块以外的所有内容?

2个回答

17

您可以执行zMzvzMzO

zM关闭所有折叠
zv使当前行可见
zO递归打开光标下的所有折叠,直至根目录

(zO中的O是大写字母"oh",不是数字零0)


6

虽然不完全符合您的要求,但可能会起作用...

将此好友映射到某个对象:

:vnoremap <Leader>za <Esc>`<kzfgg`>jzfG`<

我将其设置为 leader => z(因为它与折叠有关) => a(因为它代表“周围”)。

用法:

选择带有 V 的行,按 leader z a。
以上和以下的所有内容都将被折叠。


1
哇,太完美了。只想提一下,:nmap <silent><Leader>zs <Esc>zRzz 是一个很好的将所有内容展开的方式。 - vrybas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接