vim如何实现按标志或者表达式折叠文本内容?

 我来答
hqxz556
推荐于2016-11-02 · TA获得超过2830个赞
知道大有可为答主
回答量:1686
采纳率:93%
帮助的人:555万
展开全部

想要按标志折叠,需要将 'foldmethod' (简称 fdm)设置为 marker。方法是:

:set fdm=marker

这时如果文中有 {{{ }}}

vim: set fdm=marker:

第0级内容(不会被折叠)
第0级内容
  第1级内容 {{{1
  第1级内容
    第2级内容 {{{2
    第2级内容
    第2级内容 }}}
  第1级内容
  第1级内容
  第1级内容 }}}
第0级内容
第0级内容
第0级内容

这样的标记(试试就知道了,文中不需要任何空格,我这只是方便您看),那么它们之间的内容就会被折叠。级别越高的折叠的越深(即越不容易被显示)。


这时可以用 zm, zr 这两个指令来增加或减少折叠的层数。


对于这样的文件。在文件的最开始,或者最末尾加上:

vim: set fdm=marker:

下次再打开这个文件,vim 就会自动将它识别为按标记折叠。(如果是程序源码,把这行内容作为注释即可。)


按表达式折叠,需要将 'fdm' 设置为 expr。

这时你可以将 'foldexpr' (简称 'fde')指定一个数值型表达式,vim 将按这个表达式的值确定每行文本处于何种折叠层。通常这个表达式是一个函数。不过写这个函数,相对复杂。


vim 还可以按缩进或者语法来折叠,分别是 indent, syntax。需要的话,都可以试试。详见:

:h 'fdm'
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式