VIM折叠代码命令

转载 2013年12月03日 11:12:35
    在VIM下,折叠文本一般情况下我是使用Visual模式选中一些文本,然后用zf命令把他折叠出来,但是经常使用visual模式,感觉不是很方便,不过经常使用感觉不是很方便,找到帮助时.发现可以使用命令模式:开始行号,结束行号folder命令就可以折叠了,

同样多行缩进可以使用:110,120>来将110行到120行缩进

复制:110,120 yank 复制到默认寄存器

或者:110,120 yank x 复制到x寄存器

1. 折叠方式
可用选项 'foldmethod' 来设定折叠方式:set fdm=*****。

有 6 种方法来选定折叠:

manual           手工定义折叠

indent             更多的缩进表示更高级别的折叠
expr                用表达式来定义折叠
syntax             用语法高亮来定义折叠
diff                  对没有更改的文本进行折叠
marker            对文中的标志折叠
注意,每一种折叠方式不兼容,如不能即用expr又用marker方式,我主要轮流使用indent和marker方式进行折叠。

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

2. 折叠命令
选取了折叠方式后,我们就可以对某些代码实施我们需要的折叠了,由于我使用indent和marker稍微多一些,故以它们的使用为例:
如果使用了indent方式,vim会自动的对大括号的中间部分进行折叠,我们可以直接使用这些现成的折叠成果。
在可折叠处(大括号中间):
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" 时有效。

vim 中代码的折叠和打开

文章转自:http://liufabin66688.blog.163.com/blog/static/13968548200810140486304/ 在查看代码的时候,如果代码十分冗长,尤...
  • WOSHICSDN7547
  • WOSHICSDN7547
  • 2015年04月29日 11:17
  • 11102

vim代码折叠功能

问题:怎样在vim中实现代码折叠功能? 解决方法:直接使用vim自带的快捷键和命令,便可以实现功能强大的折叠 小试折叠: 1 :set fdm=marker 在vim中执行该命令 2 5G...
  • zcube
  • zcube
  • 2015年01月01日 23:08
  • 12074

vim折叠代码

本文转载于:http://blog.sina.com.cn/s/blog_7acf472901017ad6.html 下面摘抄了一些自己觉得用的上的并尝试过的设置。  Vim将折叠等同于行来对待——...
  • Robot__Man
  • Robot__Man
  • 2016年09月18日 10:59
  • 415

Vim技巧#Vim foldmethod代码折叠功能

问题:怎样在vim中实现代码折叠功能? 解决方法:直接使用vim自带的快捷键和命令,便可以实现功能强大的折叠 小试折叠: :set fdm=marker 在vim中执行该命令 5G 将...
  • qq_27968607
  • qq_27968607
  • 2017年03月09日 11:10
  • 1320

vim插件--python_fold代码收起/展开

created by Jorrit Wiersma   script type utility   description ...
  • q553716434
  • q553716434
  • 2012年05月13日 08:05
  • 2529

python: vim的折叠展开快捷键、xml处理、使用base64加解密等

vim python代码自动折叠  http://vim.sourceforge.net/scripts/script.php?script_id=515 zo 展开  zc 收起  zn...
  • hzraymond
  • hzraymond
  • 2012年11月14日 13:36
  • 3751

让Vim支持PHP代码折叠、调试!

Vim 6.0 以上版本开始支持代码折叠.其实 Vim 的 PHP 语法文件($VIMRUNTIME/syntax/php.vim) 已经支持PHP代码折叠,只是默认没有打开.可以该文件开头处(注释后...
  • netvt
  • netvt
  • 2005年07月02日 07:46
  • 3547

vim折叠代码命令

在VIM下,折叠文本一般情况下我是使用Visual模式选中一些文本,然后用zf命令把他折叠出来,但是经常使用visual模式,感觉不是很方便,不过经常使用感觉不是很方便,找到帮助时.发现可以使用命令模...
  • cdkd123
  • cdkd123
  • 2013年03月04日 11:09
  • 411

Linux——VIM中代码的折叠和打开

文章转自:http://liufabin66688.blog.163.com/blog/static/13968548200810140486304/ 在查看代码的时候,如果代码十分冗长,尤其是c/...
  • sinat_36053757
  • sinat_36053757
  • 2017年10月09日 16:10
  • 202

vim的折叠、智慧缩排

折叠:        vim里的折叠命令都以z开头,有6种折叠方式:manual,indent,expr,syntax,diff,marker。其中,manual所最基本的,它的命令是通用的,掌握...
  • strategycn
  • strategycn
  • 2012年08月23日 00:33
  • 8853
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VIM折叠代码命令
举报原因:
原因补充:

(最多只允许输入30个字)