是否有Vim命令删除文件中的所有折叠标记?

Xav*_*rac 12 vim

要删除特定的折叠,就可以做到zd.

要删除所有折叠标记,可以执行:

:%s/# {{{//
:%s/# }}}//
Run Code Online (Sandbox Code Playgroud)

但是有没有命令(比如zd)删除所有标记?

Omn*_*nce 20

tl; dr zE是您正在寻找的命令.

现在为长版本.

假设:

  1. 你的目标foldmethodmarker.
  2. 您的foldmarker设置与文件中的折叠标记匹配(在您的情况下,它是默认值{{{,}}}).
  3. 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

这在以下情况下无效:

  • 一行包含多个标记,其中一个指定一个级别.只删除第一个,而不检查是否具有删除折叠所需的效果.

  • 标记包含一个级别编号,用于同时开始或结束多个折叠.