• VIM设置代码折叠


    今天看了一下别人写的程序的源代码,发现是用vim写的,代码中有趣是用vim来折叠代码,一开始我以为是用插件的,后来上网查了查,得出以下使用方面的技巧。

    1. 折叠方式

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

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

    有6种方法来选定折叠:

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

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

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

    2. 折叠命令

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

    在可折叠处(大括号中间):

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

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

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

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    zf      创建折叠,比如在marker方式下:                  
             zf56G,创建从当前行起到56行的代码折叠;                  
             10zf或10zf+或zf10↓,创建从当前行起到后10行的代码折叠。                  
             10zf-或zf10↑,创建从当前行起到之前10行的代码折叠。                  
             在括号处zf%,创建从当前行起到对应的匹配的括号上去((),{},[],<>等)。
     
    zd      删除 (delete) 在光标下的折叠。
             仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。
     
    zD     循环删除 (Delete) 光标下的折叠,即嵌套删除折叠。
             仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。
     
    zE      除去 (Eliminate) 窗口里“所有”的折叠。
             仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。
  • 相关阅读:
    关于MySQL错误 2005
    Eclipse如何导入第三方jar包
    Codeforces Round #377 (Div. 2) D. Exams
    18110 Koishi's travel, Satori's travel
    用Java做的类似皇家守卫战的游戏
    Notepad++如何编译、运行Java
    Codeforces Round #341 (Div. 2)--C. Wet Shark and Flowers
    hdu 2120 Ice_cream's world I
    FZU 1851 组合数
    HUST 1599 Multiple
  • 原文地址:https://www.cnblogs.com/chjbbs/p/6510904.html
Copyright © 2020-2023  润新知