要删除特定折叠,可以zd
。
要删除所有折叠标记,可以执行:
:%s/# {{{//
:%s/# }}}//
但有没有命令(如zd
)删除所有标记?
答案 0 :(得分:15)
tl; dr zE
是您正在寻找的命令。
现在是长版本。
假设:
foldmethod
设置为marker
。foldmarker
设置与文件中的折叠标记相匹配
(在您的情况下,它是默认的{{{,}}}
)。commentstring
设置正确(几乎可以肯定,除非vIM没有文件类型的语法文件)。你可以使用zE
E 限制文件中的所有折叠。
您可以运行:set foldmethod? foldmarker? commentstring?
来检查设置,并通过运行:set foldmethod=manual foldmarker={{{,}}} commentstring=#%s
进行设置。
请参阅此处的文档:http://vimdoc.sourceforge.net/htmldoc/fold.html#zE
这里的文档中有一些警告:http://vimdoc.sourceforge.net/htmldoc/fold.html#fold-delete-marker
在以下情况下无效:
一行包含多个标记,其中一个指定一个级别。只删除第一个,而不检查是否会这样 具有删除折叠所需的效果。
标记包含一个级别编号,用于同时开始或结束多个折叠。
答案 1 :(得分:1)
我自己回答:
要删除所有折叠标记,请在执行ggVG
之前用zd
直观地选择所有文件。