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

时间:2013-11-30 19:50:25

标签: vim

要删除特定折叠,可以zd

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

:%s/# {{{//
:%s/# }}}//

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

2 个答案:

答案 0 :(得分:15)

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

现在是长版本。

假设:

  1. 您的foldmethod设置为marker
  2. 您的foldmarker设置与文件中的折叠标记相匹配 (在您的情况下,它是默认的{{{,}}})。
  3. 您的commentstring设置正确(几乎可以肯定,除非vIM没有文件类型的语法文件)。
  4. 你可以使用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直观地选择所有文件。