vim fold

最近需要折叠, 于是找了一下。 其实手册里面有, 不过手册做的太好太详细的后果往往就是让人懒得看了。 写的东西超过五六屏以后, 感觉翻来翻去就不怎么方便了, 看起来也很混乱。 这个时候最好就能折叠起来。 VIM里面也有VS里面那样的折叠功能, 而且不需要用鼠标去点那个减号和加号。
建立折叠
z的意思就是他的形状, 像一个折叠的东西, 折叠相关的命令都是z开头的, 新版本的拼写检查命令也有以z开头的。 f的意思是fold。 所以zf就是折叠。 你可以在visual模式下选定, 再按zf, 可以将选定的全部折叠。 也可以zf9j, 这样可以将下面9行的内容折起来。 也可以用marker, 还可以用行号:20,50, 就可以把20行到五十行折叠起来 。 总之可以用一般的定位的方法来告诉VIM你要折叠那些地方。
我觉得比较有用的是匹配括号的折叠, 移动到一个花括号{上, 用zfa}, 就可以将下面的匹配的花括号之间的内容折起来, 这样可以很方便的折起函数。 其他的折叠方法还有zf/string, 可以折叠到下一个匹配的string, 不过好像不太实用。
使用折叠
移动的时候在前面加一个z就可以在折叠的地方移动, 比如zj,就会跳到下一个折叠, zk就是上一个。  要打开的话可以zo,o是open的意思, zO打开所有的折叠。 关上用zc, c是close。 在zO之后用zc会关上所有打开的折叠。 折叠可以嵌套, zr可以打开第一层的折叠,zR可以打开所有层的折叠, 与之对应的是zm和zM, 是按层关上折叠。 比如说按zm, 会从最里层的层叠关起, 连续zm就会一直关到最上层的折叠。
查找到了折叠里面会将折叠打开, 处理完了之后要自己将折叠关上。
折叠选项
可以让VIM根据语法, 缩进,标记自动折叠。 用set foldmethod=foldoption 来设定。 可以查看一下foldmethod

 

 

保留折叠
要下一次打开的时候还保留折叠可以在离开的时候:mkview

 

,再进来的时候:loadview就可以了。 当然也可以将这两句加到vimrc里面让其自动完成。

 

 

au BufWinLeave * mkview
au BufWinEnter * silent loadview
这样每次就可以看到上次的折叠了。

 

 

 

 

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页