如何同时打开包含搜索模式的所有折叠?

时间:2013-09-14 19:29:01

标签: vim folding

我有一个包含大约一百个段落的文件,每个段落都按照第三个例子折叠:help fold-expr部分,这样可以折叠出用空行分隔的段落:

set foldmethod=expr
set foldexpr=getline(v:lnum)=~'^\\s*$'&&getline(v:lnum+1)=~'\\S'?'<1':1

假设我启动搜索模式,例如

/Item 014

这种模式可以在7个不同的折叠中找到。

我知道我可以按“n”6次连续打开搜索所涉及的所有折叠。

但我希望一次性打开7个折叠,以便快速浏览。

我尝试了一个宏

qu n q

然后

/Item 014
100@u

但失败了。

我该怎么办?

1 个答案:

答案 0 :(得分:13)

执行/Item 014搜索后,您可以使用以下命令打开包含该模式的所有折叠:

:g//foldopen

这利用了:g命令在空闲时重用最后一个搜索模式的事实。因此,Ex命令:foldopen在所有匹配的行上执行:它打开当前行的折叠。