zoukankan      html  css  js  c++  java
  • 【转】vim折叠功能

    原文: https://www.yupengsir.com/topic/content?i=140

    这个作者的vim系列是高级的用法, 要学习一下。

    https://blog.easwy.com/archives/advanced-vim-skills-advanced-move-method/

    ---------------------------------------------------------------------------------------------

    一、简介

    vim自带代码折叠功能,会使得我们开发时更简单。在vim中折叠设置:set fdm=xxx(fdm<>foldmethod缩写),可在.vimrc中定义实现永久有效,有manual,indent,marker,diff,syntax,expr等5种模式,此处介绍前三种。

    • manual:手工定义折叠

    • indent:按缩进折叠

    • marker:用标记/*{{{*/ /*}}}*/来定义折叠

    • diff:比较模式,对没有更改的文本进行折叠

    • syntax:用语法高亮来定义折叠

    • expr:用表达式进行折叠

    二、使用

    1、manual模式:set fdm=manual

    说明:此模式下的折叠功能只能依靠人工创建折叠范围区,在此基础上对折叠区进行开启、关闭、删除和移动等操作。

    • zf:创建折叠区

      • vj/vk/vG/vgg选中区域后执行zf

      • zfnj:从当前行开始向下到n行折叠

      • zfnk:从当前行开始向上到n行折叠

      • zfgg:从当前行到第一行折叠

      • zfG:从当前行到最后一行折叠

      • zfngg:从当前行到第n行折叠

      • zfap:按段落折叠

      • zfa(:折叠括号包围的区域(如:()、[]、{}、><等)

    • 开启

      • za:开启/关闭当前折叠区,任何时候有效

      • zi:开启/关闭所有级折叠区,仅对对自己开启的折叠区有效

      • zv/zo:打开当前折叠区

      • zO:打开当前所有级折叠区

      • zr:打开同一级折叠区

      • zR:递归打开所有折叠区

    • 关闭

      • zm:关闭同一级折叠区

      • zM:关闭所有级折叠区

      • zc:关闭当前折叠区

      • zC:关闭选取范围内所有级折叠区

      • zn:禁用折叠

      • zN:启用折叠

    • 删除

      • zd:删除当前折叠区

      • zD:删除当前所有级折叠区

      • zE:删除窗口内所有折叠区

    • 移动

      • zj:向下一个折叠点移动

      • zk:向上一个折叠点移动

      • [z:移动到打开后的折叠区的开始处

      • ]z:移动到打开后的折叠区的结束处

    • 注意

      • vim不会自动记忆手工折叠点需要如下命令进行保存/读取

      • :mkview 进行保存

      • :loadview 进行读取

     

    2、indent模式:set fdm=indent

    说明:此模式下的折叠功能依据缩进自动进行,zf在此模式中无效,在此基础上对折叠区进行开启、关闭和移动等操作与手动模式的一致。

    :set foldlevel=1 #指定级别折叠缩进

    :set foldlevelstart=99 #避免启动编辑器代码自动折叠

    3、marker模式:set fdm=marker

    说明:此模式默认按{{{ }}}标志作为缩进依据,zf会自动生成该标志,在此基础上对折叠区进行开启、关闭、删除和移动等操作与手动模式的一致。

    :set foldlevelstart=99 #避免启动编辑器代码自动折叠

    三、参考资料

    syntax用法

    indent与marker用法

    vim折叠设置

  • 相关阅读:
    Android ViewPager使用详解
    Android开发 侧边滑动菜单栏SlidingMenu结合Fragment
    ArrayList
    Gstreamer中加入�x265编解码器
    python fabric实现远程操作和部署
    java.text.NumberFormat使用方法
    Delphi 2007体验!
    Codeforces 360C Levko and Strings dp
    FindWindow使用方法
    C++ Primer 学习笔记_87_用于大型程序的工具 --异常处理
  • 原文地址:https://www.cnblogs.com/oxspirt/p/9528614.html
Copyright © 2011-2022 走看看