• 【转】vim折叠(非常好的功能)


    http://www.2cto.com/os/201203/122133.html

    主要命令:

    zf-创建折叠

    zf20G--创建折叠,从当前行折叠到第20行

    zfgg--创建折叠,从当前位置折叠到文件头,非常适合编程的时候隐藏文件顶部的头文件包含,源文件注释

    写程序时都是以函数为单位,可以很方便的折叠一个函数,而保留函数头部。如下函数,我们将光标停留在{处,输入zf%(%在vim中表示括号匹配,此处指匹配到另一个对应的大括号)
    #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.html

  • 相关阅读:
    为什么要做服务化?
    同步 互斥锁 读写锁 区别
    http request header 中的host行的作用
    关于group by 、group by having、where group by与 group by order by
    where,having与 group by连用的区别
    数据库:drop、truncate、delete三者删除的区别
    设置 TOMCAT 请求超时时间 和 最大连接数
    访问平台Servlet时,如何设置超时时间
    开源一款简单清爽的日历组件,JavaScript版的
    关于响应式布局
  • 原文地址:https://www.cnblogs.com/fstang/p/2793171.html
Copyright © 2020-2023  润新知