在tcomment插件中,特别是在以下位置:


~/.vim/pack/tml/start/tcomment.vim/autoload/tcomment.vim
~/.vim/pack/tml/start/tcomment.vim/plugin/tcomment.vim

我在某些行的末尾看到了这一点:
"{{{2


"{{{3

例如:
let g:tcomment#blank_lines = 2    "{{{2

这些是否有特殊注释?还是什么?
谢谢。

#1 楼

它是折叠标记。阅读更多:h fold-marker

评论


我真的很想反对这个,因为失去了这样的机会-这个答案的一个更好的版本是教程,教给操作员有关折叠标记的方法及其用法,而不仅仅是给出名称和链接

– D. Ben Knoble♦
20年7月15日在2:59

@ D.BenKnoble整个“教程”已经在Vim的出色帮助页面中。为什么要重新发明轮子?最好将新手重定向到:help,因为它应该是有关Vim的主要信息来源。新手只是不知道在那儿搜索什么。

–Jorengarenar
20 Jul 15'3:22



Aaaaaand该链接已经抛出500了:)为什么在此处添加有用内容的完美示例。

–马特·克拉克(Matt Clark)
20 Jul 15'6:27



@Jorengarenar我同意您的帮助应该始终是第一信息来源这一事实。但是,重新构造帮助,以综合方式汇总其信息并链接到不同的相关主题通常是帮助人们吸收新信息的好方法,这基本上就是整个网站存在的原因。

–statox♦
20年7月15日在8:18

实际上,至少对于我来说,Jorengarenar恰好给了我我想要和想要的东西。有关折页的文档不胜枚举,这里没有办法对其进行重新哈希处理。但是,将来我可能还会对此提出其他疑问,因为恕我直言,它的工作过于复杂。也许我只是被GUI文件夹宠坏了。我不知道。谢谢@Jorengarenar。

–椭圆视图
20年7月15日在8:47

#2 楼

正如Jorengarenar在回答中所说,"{{{2与折叠标记有关。现在,什么是折叠标记?它们有什么用?以及如何使用它们?
首先让我们注意,您在问题中提到的字符串由三个部分组成:


"注释字符。这特定于缓冲区的文件类型,这里是",因为它是一个vimscript文件。在纯文本文件中,您甚至可以省略任何注释字符,因为这不是实际标记的一部分。

{{{实际折叠标记。 :h 'foldmarker'告诉我们{{{}}}是默认值,但它可以是任何字符串

2或任何可选的数字表示标记的级别。

这些标记允许用户在其缓冲区中包含折痕,这是在缓冲区中定义某些部分的一种方式。然后,您可以显示或隐藏这些部分并在它们之间导航。例如,我在vimrc中使用它们来整理插件。
这是所有折叠均关闭时vimrc的外观:

现在,如果我打开" Plugins {{{折叠,我可以拥有一个快速浏览一下我安装的插件:

再深入一点,我可以专注于特定插件的配置:

请注意,我同时使用打开{{{和关闭}}}标记,这是我的偏爱,但是如果我使用水平,我可以简单地省略关闭标记。

现在,如果打开在vim中链接的文件,您可能会惊讶地发现没有折叠发生。这是因为您需要按照foldmethod的说明将marker选项设置为:h 'foldmethod'
由于该设置对于窗口而言是本地的,因此有多种方法可以启用它。例如,您可以使用自动命令来执行此操作。您可以为打开的任何新窗口启用设置:
 augroup folding
     autocmd!
     autocmd WinNew * set foldmethod=marker
 augroup END

或执行此操作的另一种常见方法是使用modeline(:h modeline)。这些行通常是在vimscript的顶部或底部显示的,如下所示:
" vi: ft=vim:tw=72:fdm=marker

Modeline为包含文件的缓冲区设置了filetypetextwidthfoldmethod。接下来,当您打开缓冲区时,将启用折叠。

使用折叠时,一些其他有用的信息:


:h fold-commands,其中显示了如何打开折叠,关闭并在它们之间导航。

:h 'foldmethod'提供了多种创建折叠的方式(标记不是唯一的选择)

:h 'foldtext'定义了您希望折叠的外观


评论


糟糕的是文档,或者至少是它的简介,没有您上面所说的那么清晰和简单。谢谢。这很有帮助!

–椭圆视图
20 Jul 15'8:54



那么这有点像Visual Studio中的#region吗?

– htmlcoderexe
20 Jul 15 '14:16

@htmlcoderexe对不起,我对VS不够熟悉,无法就此给出明确的答案

–statox♦
20年7月15日在14:23

@statox粗略地讲,您将#region(某物)放在要折叠的东西之前,#endregion之后,然后它们之间的所有内容在边缘变成可折叠的[+]东西,在折叠时显示(某物)。甚至可以嵌套它们,在GUI代码中不可替代...

– htmlcoderexe
20年7月15日在15:00

@htmlcoderexe然后确实似乎是等效的

–statox♦
20年7月15日在15:17