vim中的折叠问题? 如果想让他折叠的是两个大括号之间的内容怎么设定啊

vim中的折叠问题? 如果想让他折叠的是两个大括号之间的内容怎么设定啊,第1张

vim 有几种折叠策略。

一般默认的是手动折叠(manual)。如果是写程序,可以按语法(syntax)折叠,或者按缩进(indent)折叠。

方法是 :set foldmethod=syntax 或者是其它方法。设置好了之后可以用 zM 和 zR 来打开或关闭所有的折叠。:h fold-commands 可以用来查看有关折叠的命令,所有的折叠命令全部由 z 开关。比如 zo 和 zc 用来打来和关闭折叠(助记符是 open 和 close)。

zhengyw55 介绍的方法是手动折叠的方法。在写作一般文本的时候,会非常有意义。

折叠是 vim 的高级功能之一,是说不会使用这个功能不怎么影响 vim 的使用。

想要按标志折叠,需要将 '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'


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11536545.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存