vim折叠html代码,Vim代码折叠简介

命令模式下:set fdm可以看到当前使用的折叠模式,默认是manual,set fdm=[foldmethod]可以设置折叠模式,foldmethod一共有六种:

manual        手动建立折叠。

indent          相同缩进距离的行构成折叠。

expr             用表达式来定义折叠,'foldexpr' 给出每行的折叠级别。

marker         标志用于指定折叠。

syntax          语法高亮项目指定折叠。

diff               没有改变的文本构成折叠。

对于六种模式的使用,各有所好,每个人根据自己的情况都有所不同,比如对我个人而言,我最喜欢manual和marker模式,两种模式轮流使用,特别爽,比如利用marker模式,可以把函数特别多的脚本的结构看的十分清晰,如图:

j47gNH6nDmORu.jpg这里特别要注意的一点是,marker模式使用的时候是有要求的,需要用标计来标识代码的折叠,也就要求了你的代码结构必须具备一定的风格(个人觉得这种风格同时也是一个不错的习惯),marker模式根据 {{{ 和 }}} 来折叠代码的,如果配合vim的一些插件(参看文本最后),可以自动生成者两个标志位:

# {{{function

[your function]

# }}}

事实上,{{{ 和 }}} 也是可以改变的:

The markers can be set with the 'foldmarker' option. It is recommended to keep this at the default value of "{{{ , }}}", so that files can be exchanged between Vim users. Only change it when it is required for the file (e.g., it contains markers from another folding editor, or the default markers cause

trouble for the language of the file).

也即可以由 foldmarker 指定,不过要注意后面提及的注意事项!

e.g:

jHzksAOm0yWJk.jpg

当然,manual模式也是采用最频繁的一种方式,这种方式的有点在于可以根据自己的具体情况和需求自由发挥,这也是默认方式:

视图模式下选中需要折叠的内容,zf进行折叠,zo打开折叠,mkview保存折叠方案,loadview加载折叠方案,mkview和loadview后面可跟数字,代表保存方案代号,这两者用的比较少。

而indent模式,对于那些已经格式化得很好的代码来说,或者对于某些用缩进来控制语句块的语言(例如python)来讲是很有用的!效果如图所示:

jbibDV2DJPjU6x.jpg要使每次打开vim时折叠都生效,则在.vimrc文件中添加设置,如添加:set fdm=marker,就像添加其它的初始化设置一样。

常用的折叠快捷键:

这里就以indent和marker为例来讲讲吧,因为这两种用的比较多:

如果使用了indent方式,vim会自动的对大括号的中间部分进行折叠,我们可以直接使用这些现成的折叠成果。

在可折叠处(大括号中间):

zc      折叠

zC     对所在范围内所有嵌套的折叠点进行折叠

zo      展开折叠

zO     对所在范围内所有嵌套的折叠点展开

[z       到当前打开的折叠的开始处。

]z       到当前打开的折叠的末尾处。

zj       向下移动。到达下一个折叠的开始处。关闭的折叠也被计入。

zk      向上移动到前一折叠的结束处。关闭的折叠也被计入。

当使用marker方式时,需要用标计来标识代码的折叠,系统默认是{{{和}}}(前面已做出说明)

我们可以使用下面的命令来创建和删除折叠:

zf 创建折叠,比如在marker方式下:

zf56G,创建从当前行起到56行的代码折叠;

10zf或10zf+或zf10↓,创建从当前行起到后10行的代码折叠。

10zf-或zf10↑,创建从当前行起到之前10行的代码折叠。

在括号处zf%,创建从当前行起到对应的匹配的括号上去((),{},[],<>等)。

zd 删除 (delete) 在光标下的折叠。仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。

zD 循环删除 (Delete) 光标下的折叠,即嵌套删除折叠。

仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。

zE 除去 (Eliminate) 窗口里“所有”的折叠。

仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。

补充内容:

最后,介绍一个工具——ONE source, MULTI targets,如果说你在此之前还没有接触过,或者还没有用过这个工具的话,那我强烈推荐你去了解一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值