在查看代码的时候,如果代码十分冗长,尤其是c/c++系列的时候,
代码结构比较让人难以理清,主要是各种注释、括号的匹配问题,
虽然可以用%来查看匹配的另外一半符号在哪里,但是如果这一对符号之间的代码超过了一页,甚至好几页的话,那么也是比较难以理解的。
于是可以使用这个vim所提供的折叠功能来简化这些分析。
我使用的vim是rh9自带的版本。
折叠的方式:
vim 提供 6中折叠方式
manual 手工定义折叠
indent 更多的缩进表示更高级别的折叠
expr 用表达式来定义折叠
syntax 用语法高亮来定义折叠
diff 对没有更改的文本进行折叠
marker 对文中的标志折叠
可用选项 'foldmethod' 来设定折叠方式:set fdm=*****。
注意,每一种折叠方式不兼容,即:你不能用expr又用marker方式。
目前我一般使用的都是indent 比较多。
使用时,用:set fdm=indent 命令来设置成marker折叠方式。
在.vimrc文件中添加设置,可以使得每次打开vi 都启动折叠方式。如添加:set fdm=syntax。
2. 折叠打开与折合
选取了折叠方式后,我们就可以对某些代码实施我们需要的折叠了。
如果使用了indent方式,vim会自动的对大括号的中间部分进行折叠,我们可以直接使用这些现成的折叠成果。
indent 对应的折叠代码有:
zc 折叠
zC 对所在范围内所有嵌套的折叠点进行折叠
zo 展开折叠
zO 对所在范围内所有嵌套的折叠点展开
[z 到当前打开的折叠的开始处。
]z 到当前打开的折叠的末尾处。
zj 向下移动。到达下一个折叠的开始处。关闭的折叠也被计入。
zk 向上移动到前一折叠的结束处。关闭的折叠也被计入。
使用时在大括号中间输入以上命令。
当使用marker方式时,需要用标计来标识代码的折叠,系统默认是{{{和}}},最好不要改动之:)
可以使用下面的命令来创建和删除折叠:
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" 时有效。
分享到:
相关推荐
Flexagon,一种 Vim 折叠方法方法管理器vims 折叠的包装器可以在各种折叠方案和一些有用的预包装方案之间轻松切换,所有这些都旨在轻松发现和轻松切换。 Flexagon 还提供了一些自定义折叠展示和“气泡”插件映射来...
+-- 42 lines: vim折叠功能------------------------------------------------------------------------------------ +-- 19 lines: 文件比较----------------------------------------------------------------...
set foldlevel=100 "启动vim时不要自动折叠代码 set foldcolumn=5 "设置折叠栏宽度 常用命令: za 打开/关闭在光标下的折叠 zA 循环地打开/关闭光标下的折叠 zc 关闭close在光标下的折叠 zo 打开在光标下的折叠 ...
易于为[neo] vim定制折叠文本。 Crease.vim为[neo] vim轻松定制折叠文本。 安装Vim软件包(自Vim 7.4.1528起)git clone https://github.com/scr1pt0r/crease.vim〜/ .vim / pack / plugins / start / crease ...
vim-anyfold:与语言无关的vim插件,用于基于缩进进行折叠和运动
FastFold, 仅在调用时更新折叠,以加速 Vim ,FastFold会做什么?自动折叠( 也就是说,折叠方法产生的褶皱与 manual 不同),在插入模式下有明显的VIM 。 他们也经常被重新计算过早( 例如,插入一个开放的折叠标记,...
SimpylFold, Vim无 python 代码折叠 SimpylFold由于它依赖于显著的空白而不是显式块分隔符,正确折叠 python 代码很棘手。 Vim绑定的python 语法定义并不包含任何折叠指令,最简单的解决方法是 set foldmethod=...
最小折叠.vim 从 vim 的折叠线中去除所有噪音。 关于 默认情况下,Vim 的折叠带有很多噪音。 上面截图的第二行是vim的折叠。 该行上的所有内容,除了红色框中的文本外,都是由 vim 添加的:缩进、连字符和行数。 ...
vim配置文件含有各种插件。用着能方便一些" 编写文件时的配置 > " ----------------------------------------------------------------------------- filetype on "启用文件类型侦测 filetype plugin on "针对不同的...
j28.9j 折叠未有改变的行 j28.10j 使用何种折行方法? jusr 29.txtj 之于程序 j29.1j 使用tags j29.2j 预览窗口 14 15 第00章目录 j29.3j 在程序中移动 j29.4j 查找全局标识符 j29.5j 查找局部标识符 jusr 30.txtj ...
matlab加粗代码 matlab-behave.vim 便于将vim / gvim用作Matlab的外部编辑器(GUI或终端): 尝试重现matlab编辑器的典型F5,...zo)并使用vim折叠映射(zj zk)从一个单元格跳转到另一个单元格 引发错误时在vim中打开
matlab代码续行vim-matlab折叠 Matlab .m语法文件的Vim编辑器的代码折叠。 便于折叠以%%开头的任何缩进的matlab代码或编辑器单元格。 折痕基于代码中的缩进结构,以尊重end关键字和以...结尾的行继续... 。 因此,...
vim-fish, 用于编辑fish脚本的Vim支持 vim这是Vim为编辑 fish 脚本提供支持的插件。功能 aplenty语法高亮和文件类型检测,当然。基于关键字的控制结构自动缩进。end 终止鱼的所有自动折叠。使用 gq 运算符使用 fish_...
一键化打造 Vim IDE 环境(自动生成头信息,自动补全,自动折叠,自动生成 markdown 目录) VIM IDE部署方法 部署方法很简单
Vim 提供了代码折叠、语法高亮、自动补全等功能,适用于程序员和文本编辑爱好者。通过个性化配置和插件系统,用户可以定制快捷键、颜色方案等。Vim 还可以作为图形化编辑器,在不同操作系统上运行,并与版本控制系统...
Vim的组织模式和大纲模式语法突出显示Org.vim是的最小和插件,仅提供语法突出显示和折叠。 该插件旨在在组织模式(和大纲模式)文件上复制Vim编辑经验,而不是试图成为功能齐全的组织模式插件,这就是Emacs的目的。 ...
tar -xf vim.tar -C ~ vim /etc/vimrc vim /root/.vimrc set ts=4 设置tab有多少空格 set ai 自动对齐 set nu set mouse=a set shiftwidth=4 shift + . 向左向右缩进 shift + , jklh ,cs 性感的注释 ...
"set foldmethod=syntax "代码折叠 "}} "conf for plugins {{ 插件相关的配置 "状态栏的配置 "powerline{ set guifont=PowerlineSymbols\ for\ Powerline set nocompatible set t_Co=256 let g:Powerline_symbols ...
自动折叠(即,通过不同于manual的折叠方法生成的折叠)会在插入模式下使VIM停滞不前。 它们也经常被过早地重新计算(例如,当插入一个打开的折叠标记时,其关闭对应的标记还没有丢失以完成折叠)。 有关讨论,请...