vim或nvim折叠设置
vim单独指定文件的折叠方式(modeline、folding)
vim的modeline可以方便指定单独文件的使用单独的配置,设置在文件的开头或结尾的n行内,默认应该是开头结尾5行内,需要使用注释说明vim配置。详细的帮助vim :help查看
:help modeline
打开modeline功能
配置文件~/.vimrc,默认vim是关闭的,增加配置,目的平时看代码的时候使用indent(缩进)方式,配置使用marker(标记)方式,方便管理配置文件比如:nginx.conf、ansible的host文件等。
set modeline
set foldenable # 打开折叠
set foldmethod=indent # 默认设置按缩进方便查看程序代码
如果使用SpaceVim,在文件~/.SpaceVim.d/autoload/myspacevim.vim,before()代码块里增加。
func! myspacevim#before() abort
set modeline
set foldenable # 打开折叠
set foldmethod=indent # 默认设置按缩进方便查看程序代码
endf
vim折叠分类
vim折叠分类
- manual 手工折叠
- indent 使用缩进表示折叠
- expr 使用表达式定义折叠
- syntax 使用语法定义折叠
- diff 对没有更改的文本进行折叠
- marker 使用标记进行折叠, 默认标记是 {{{ 和 }}}
手动设置折叠
我这里在.vimrc 里设置的是indent,看代码的时候比较方便,但是在编译大一点的配置文件比如ansible的hosts文件或nginx.conf的时候可以方便折叠,自己设置折叠标记,可以采用手工设置。
:set fdm=marker
modeline 在文件开头或结尾设置折叠
折叠需要针对不同类型的文件进行设置,主要看文件的注释符号是什么,如C使用/**/ python使用#等,建议在文件末尾设置。
# 这是一个.py的文件
# vim: set foldmethod=marker:
检查配置是否生效
:verbose set fdm
foldmethod=marker
Last set from modeline line 1173
这里可以看到生效显示的是"from modeline line 1173"
快捷键
:help folding # vim里查看帮助
快捷键 | 说明 |
---|---|
zf | v模式,按前面的方式进行折叠,开始的时候自己手动创建一个 |
zF | 创建折叠在里面填写内容 |
zd | v模式删除折叠 |
zD | 删除嵌套 |
za[A] | 打开关闭之间你切换 |
zc[C] | 关闭 |
zo[O] | 打开 |
zr[m] | 分层打开和关闭 |
zR[M] | 全部打开和关闭 |
zj[k] | 折叠上下移动 |
[z,]z | 折叠上下移动 |
ansible hosts文件例子
# vim: set foldmethod=marker syntax=yaml ts=2 sw=1 sts=2 sr noet:
hosts文件没有扩展名显示的语法可能会有问题,使用行模式配置后看起来更准确。