• vim 折叠的用法


     http://www.cnblogs.com/fakis/archive/2011/04/14/2016213.html

    1. 折叠方式

    可用选项来设定折叠方式:

    可在Vim 配置文件中设置 set fdm=XXX
    可直接在文件中使用注释调用vim命令 /* vim: set fdm=XXX: */

    有6种方法来选定折叠:
    1    manual          手工定义折叠         
    2    indent           更多的缩进表示更高级别的折叠         
    3    expr              用表达式来定义折叠         
    4    syntax           用语法高亮来定义折叠         
    5    diff                对没有更改的文本进行折叠         
    6    marker           对文中的标志折叠

    注意,每一种折叠方式不兼容,如不能既用expr又用marker方式,我主要轮流使用indent和marker方式进行折叠。

    使用时,用 set fdm=marker 命令来设置成marker折叠方式(fdm是foldmethod的缩写)。
    要使每次打开vim时折叠都生效,则在.vimrc文件中添加设置,如添加:set fdm=syntax,就像添加其它的初始化设置一样。

    2. 折叠命令

    选取了折叠方式后,我们就可以对某些代码实施我们需要的折叠了,由于我使用indent和marker稍微多一些,故以它们的使用为例:如果使用了indent方式,vim会自动的对大括号的中间部分进行折叠,我们可以直接使用这些现成的折叠成果。

    在可折叠处(大括号中间):
    1    zc      折叠
    2    zC     对所在范围内所有嵌套的折叠点进行折叠
    3    zo      展开折叠
    4    zO     对所在范围内所有嵌套的折叠点展开
    5    [z       到当前打开的折叠的开始处。
    6    ]z       到当前打开的折叠的末尾处。
    7    zj       向下移动。到达下一个折叠的开始处。关闭的折叠也被计入。
    8    zk      向上移动到前一折叠的结束处。关闭的折叠也被计入。

    当使用marker方式时,需要用标计来标识代码的折叠,系统默认是{{{和}}},最好不要改动

    我们可以使用下面的命令来创建和删除折叠:

    01    zf      创建折叠,比如在marker方式下:                  
    02             zf56G,创建从当前行起到56行的代码折叠;                  
    03             10zf或10zf+或zf10↓,创建从当前行起到后10行的代码折叠。                  
    04             10zf-或zf10↑,创建从当前行起到之前10行的代码折叠。                  
    05             在括号处zf%,创建从当前行起到对应的匹配的括号上去((),{},[],<>等)。
    06    
    07    zd      删除 (delete) 在光标下的折叠。
    08             仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。
    09    
    10    zD     循环删除 (Delete) 光标下的折叠,即嵌套删除折叠。
    11             仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。
    12    
    13    zE      除去 (Eliminate) 窗口里“所有”的折叠。
    14             仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。


     http://yyq123.blogspot.com/2011/09/vim-fold.html

    当我们查看很长的文本时(比如程序代码),可以使用:set foldenable命令来启动折叠。首先将内容按照其结构折叠起来,查看文件的大纲,然后再针对待定的行展开折叠,显示文本的详细内容。

    fold_close

    Vim将折叠等同于行来对待——你可以使用j或k命令,移动跳过包含多行的整个折叠;也可以使用y或d命令,复制或删除某个折叠。

    通常在折叠处向左或向右移动光标,或者进入插入模式,都将会自动打开折叠。我们也可以使用以下命令定义快捷键,使用空格键关闭当前打开的折叠,或者打开当前关闭的折叠。

    :nnoremap <space> za

    按照折叠所依据的规则,可以分为Manual(手工折叠)、Indent(缩进折叠)、Marker(标记折叠)和Syntax(语法折叠)等几种。

    Manual Fold

    使用以下命令,启用手工折叠。

    :set foldmethod=manual

    在可视化模式下,使用以下命令,将折叠选中的文本:

    zf

    通过组合使用移动命令,可以折叠指定的行。例如:使用zf70j命令,将折叠光标之后的70行;使用5zF命令,将当前行及随后4行折叠起来;使用zf7G命令,将当前行至全文第7行折叠起来。

    我们也可以使用以下命令,折叠括号(比如()、[]、{}、><等)包围的区域:

    zfa(

    Vim并不会自动记忆手工折叠。但你可以使用以下命令,来保存当前的折叠状态:

    :mkview

    在下次打开文档时,使用以下命令,来载入记忆的折叠信息:

    :loadview

    可以使用以下命令,查看关于手工折叠的帮助信息:

    :help fold-manual

    Indent Fold

    使用以下命令,启用缩进折叠。所有文本将按照(选项shiftwidth 定义的)缩进层次自动折叠。

    :set foldmethod=indent

    使用zm命令,可以手动折叠缩进;而利用zr命令,则可以打开折叠的缩进。

    使用以下命令,将可以根据指定的级别折叠缩进:

    :set foldlevel=1

    可以使用以下命令,查看关于缩进折叠的帮助信息:

    :help fold-indent

    Syntax Fold

    使用以下命令,启用语法折叠。所有文本将按照语法结构自动折叠。

    :set foldmethod=syntax

    可以使用以下命令,查看关于语法折叠的帮助信息:

    :help fold-syntax

    Marker Fold -- 常用

    使用以下命令,启用标记折叠。所有文本将按照特定标记(默认为{{{和}}})自动折叠。

    :set foldmethod=marker

    我们可以利用标记折叠,在文本中同时体现结构和内容,并且能够快速跳转到文件的不同部分。

    fold_marker

    可以使用以下命令,查看关于标记折叠的帮助信息:

    :help fold-marker

    折叠选项

    使用:set foldcolumn=W命令(W是一个0-12的整数),将在屏幕左侧显示一个折叠标识列,分别用“-”和“+”而表示打开和关闭的折叠。

    foldcolumn

    使用以下命令,可以查看关于折叠的帮助信息:

    :help folding

    命令小结
    zc 关闭当前打开的折叠
    zo 打开当前的折叠
    zm 关闭所有折叠
    zM 关闭所有折叠及其嵌套的折叠
    zr 打开所有折叠
    zR 打开所有折叠及其嵌套的折叠
    zd 删除当前折叠
    zE 删除所有折叠
    zj 移动至下一个折叠
    zk 移动至上一个折叠
    zn 禁用折叠
    zN 启用折叠
     
  • 相关阅读:
    C#单例模式详解
    Unity基础知识学习笔记二
    Unity基础知识学习笔记一
    pat 团体赛练习题集 L2-007. 家庭房产
    JOBDU 题目1100:最短路径
    POJ 2492 A Bug's Life
    pat 团体赛练习题集 L2-008. 最长对称子串
    pat 团体赛练习题集 L2-006. 树的遍历
    POJ 1511 Invitation Cards
    codevs——1003——电话连线
  • 原文地址:https://www.cnblogs.com/thrillerz/p/4904475.html
Copyright © 2020-2023  润新知