手动折叠:
zfap
你将会看到该段落被一行高亮的文本所代替。你已经建立了一个折叠了。|zf|是一个操做符,而|ap|是一个文本对象。你能够将|zf| 操做符跟任何一个移动命令联用,为所经 之处的文本建立一个折叠。|zf| 也能在可视模式下使用
说明:ap是用以选择一个段落。这里a的用法以下所示:
" "this is a example" "
使用的方法就是<action>a<标识,能够是',",],}等>
只要在内层双引号里面输入va" 就会选中"this is a example"
也能够在内层双引号中输入y2a" 就会复制" this is a example" "
{This is another example}
只要在{}内的任意位置输入va}就会复制{This is another example}。
zf20G 从当前位置折叠到20行
zfgg 从当前位置折叠到文件头,很是适合编程的时候隐藏文件顶部的头文件包含,源文件注释
做者经常使用:
写程序时都是以函数为单位,能够很方便的折叠一个函数,而保留函数头部。以下函数,咱们将光标停留在{处,输入zf%
#include <stdio.h>
int main(int argc, char* argv[])
{
return 0;
}
效果就出来了:
#include <stdio.h>
int main(int argc, char* argv[])
+:-- 3行 {-------------------------------------------------}
若要再阅读那些文本,则能够键入如下命令打开该折叠:
zo
你还能够用一下命令再关闭该折叠:
zc
全部的折叠命令都以'z' 开头。展开你的想像力,这个字母看起来就像一张折叠起来的
纸的侧面。而"z" 后面可用的字母,因为采用了帮助记忆方法选择,很容易记得住:
zf F-old creation (建立折叠)
zo O-pen a fold (打开折叠)
zc C-lose a fold (关闭折叠)
一次打开全部折叠:
zr zR(用于有递归折叠的时候,功能与zr相似)
一次关闭全部折叠:
zm zM(用于有递归折叠的时候,功能与zm相似)
更经常使用的命令:
zi (当咱们建立了折叠之后,可使用zi关闭全部折叠,将光标移到想浏览的文本处,再按zi,打开全部折叠)
折叠控制:
有时候,查看或记住一个折叠在哪儿,挺不容易的。更别说用|zo| 命令来打开了。要查
看那些已定义的折叠:
:set foldcolumn=4
这个命令将在窗口左边显示一小栏来标识各个折叠。一个"+" 表示某个关闭的折叠。一
个"-" 表示每一个打开的折叠的开头,而"|" 则表示该折叠内其他的行。
取消左边的小栏:
:set foldcolumn&
你能够在折叠栏内用鼠标点击"+",以打开一个折叠。点击"-" ,或在它之下的某个
"|" ,将关闭一个打开的折叠。
存储和恢复一个折叠:
当你关闭一个文件,去作其余事情,或编辑其余文件,回来之后编辑同一个文件,若是折叠是手动方式建立的,则全部的折叠都消失了!为了保存折叠,可使用:
:mkview
这将存储那些影响文件视图的设定及其余内容。
稍后回到同一个文件时,能够从新载入这个视图:
:loadview
你能够为一个文件储存多至十个视图。例如,把当前设置储存为第三个视图,并载入第
二个视图:
:mkview 3
:loadview 2
依赖缩进折叠:
若是但愿依赖缩进折叠,则首先须要设置
:set foldmethod=indent
若是你写的代码比较规范,不规范也没事,先所有选中,而后按“=”,代码就规范一些了。完整的命令是ggvG=
而后试试zm,zr有什么效果,这个功能对于程序员仍是挺有用的。当咱们设置了foldmethod后就不能再手动建立折叠了,对于我这样喜欢不喜欢被约束的这个功能其实很不咋滴。
咱们只须要从新设置foldmethod就能够了。
:set foldmethod& (后面加个&就是恢复默认设置,反正我是这么理解的)
其余折叠方式:
依赖标识折叠
依赖语法折叠
依赖表达式折叠
参见:http://vimcdoc.sourceforge.net/doc/usr_28.html#28.6
参考资料:http://vimcdoc.sourceforge.net/doc/usr_28.htmlcss