vim 中代码的折叠和打开

文章转载自:http://liufabin66688.blog.163.com/blog/static/13968548200810140486304/
仅用于个人学习备查收藏。

在查看代码的时候,如果代码十分冗长,尤其是c/c++系列的时候,

代码结构比较让人难以理清,主要是各种注释、括号的匹配问题,
虽然可以用%来查看匹配的另外一半符号在哪里,但是如果这一对符号之间的代码超过了一页,甚至好几页的话,那么也是比较难以理解的。
于是可以使用这个vim所提供的折叠功能来简化这些分析。
我使用的vim是rh9自带的版本。

折叠的方式:

      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" 时有效。
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
里面的vim插件已经包含了taglist,omnicppcomplete等插件,无需再下载,详细的配置参考.vimrc,注意快捷键使用即可。有什么不喜欢和bug的地方,自行调整.vimrc。ctags命令工具还是要下载安装的。 1. 安装ctags和cscope yum install即可 在.vimrc文件增加map :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q . 就可以在vim使用快捷键F12来随时生成当前目录下的tags,这样后续配好omni自动补全以后,自己工程下定义的类的public成员,也可以通过. :: ->来自动补全了。全局定义的查找。局部的符号不会生成tags,这个要使用superTab。 Ctrl ] 跳转到光标所在位置的符号的定义,前提是tags有。 Ctrl t 回到上次跳转前的位置。 2. 下载其他vim插件 echofunc.vim 在底部状态栏显示函数原型 Alt - 和 Alt + 可以在多个函数原型间切换 winmanager 侧边栏显示文件浏览 直接把.vim文件拷贝到~/.vim/plugin/下即可 自动打开winmanager,参考http://blog.csdn.net/xuanwu_yan/article/details/43736299 : 在.vimrc添加: let g:autoOpenWinManager=1 然后需要手动修改winmanager.vim文件,在末尾加入: " set auto open WinManager if g:autoOpenWinManager autocmd VimEnter * nested call s:StartWindowsManager() endif 调整winmanager窗口的大小,参考http://blog.csdn.net/yangzhongxuan/article/details/7944927 : let g:bufExplorerMaxHeight=30 let g:bufExplorerMoreThanOne=0 miniBufferExplorer,直接下载minibufexpl.vim 折叠设置 " --fold setting --- set foldmethod=syntax "用语法高亮来定义折叠 set foldlevel=100 "启动vim时不要自动折叠代码 set foldcolumn=5 "设置折叠栏宽度 常用命令: za 打开/关闭在光标下的折叠 zA 循环地打开/关闭光标下的折叠 zc 关闭close在光标下的折叠 zo 打开在光标下的折叠 安装SuperTab,参考http://blog.csdn.net/bokee/article/details/6633193 ,配了之后没反应 使Tab键具有更快捷的上下文提示功能,从http://www.vim.org/scripts/script.php?script_id=1643 下载安装,它是个vba文件,即Vimball格式的安装包,安装方法: 1)用vim打开supertab.vba文件 2)在vim命令行下运行命令UseVimball ~/.vim。就会将安装包安装到~/.vim目录下。 在~/.vimrc文件添加: let g:SuperTabDefaultCompletionType="" 使用Ctrl - P键弹出SuperTab的自动补全 Ctrl - w - ] 弹出定义的位置 Ctrl - ] 跳到符号定义的位置,Ctrl - t返回上次跳走的位置 Ctrl-x Ctrll-o 弹出omni自动补全 F12 生成当前目录下的tags
Sublime Text 文版是一个代码编辑器(Sublime Text 是收费软件,但可以无限期试用),也是HTML和散文先进的文本编辑器。Sublime Text是由程序员Jon Skinner于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展功能的Vim。Notepad++ 文版也是一款优秀免费的代码编辑器哦。 Sublime Text 3 文版 Sublime Text 绿色文版具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。 Sublime Text 文版的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。 Sublime text 快捷键 Ctrl+L 选择整行(按住-继续选择下行) Ctrl+KK 从光标处删除至行尾 Ctrl+K Backspace 从光标处删除至行首 Ctrl+J 合并行(已选择需要合并的多行时) Ctrl+KU 改为大写 Ctrl+KL 改为小写 Ctrl+D 选择字符串 (按住-继续选择下个相同的字符串) Ctrl+M 光标移动至括号内开始或结束的位置 Ctrl+/ 注释整行(如已选择内容,同“Ctrl+Shift+/”效果) Ctrl+Shift+c转换为utf8 Ctrl+R 搜索指定文件的函数标签 Ctrl+G 跳转到指定行 Ctrl+KT 折叠属性 Ctrl+K0 展开所有 Ctrl+U 软撤销 Ctrl+T 词互换 Tab 缩进 自动完成 Shift+Tab 去除缩进 Ctrl+Enter 光标后插入行 Ctrl+F2 设置书签 F2 下一个书签 Shift+F2 上一个书签 shift+鼠标右键 列选择 Alt+F3 选文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑 Alt+. 闭合当前标签 F6 检测语法错误 F9 行排序(按a-z) F11 全屏模式 Ctrl+Shift+Enter 光标前插入行 Ctrl+Shift+[ 折叠代码 Ctrl+Shift+] 展开代码 Ctrl+Shift+↑ 与上行互换 Ctrl+Shift+↓ 与下行互换 Ctrl+Shift+A 选择光标位置父标签对儿 Ctrl+Shift+D 复制光标所在整行,插入在该行之前 ctrl+shift+F 在文件夹内查找,与普通编辑器不同的地方是sublime允许添加多个文件夹进行查找 Ctrl+Shift+K 删除整行 Ctrl+Shift+L 鼠标选多行(按下快捷键),即可同时编辑这些行 Ctrl+Shift+M 选择括号内的内容(按住-继续选择父括号) Ctrl+Shift+P 打开命令面板 Ctrl+Shift+/ 注释已选择内容 Ctrl+Shift+Enter 光标前插入行 Ctrl+PageDown 、Ctrl+PageUp 文件按开启的前后顺序切换 Ctrl+鼠标左键 可以同时选择要编辑的多处文本 Shift+鼠标右键(或使用鼠标键)可以用鼠标进行竖向多行选择 Shift+Tab 去除缩进 Alt+Shift+1~9(非小键盘)屏幕显示相等数字的小窗口 Sublime Text 插件管理 1、安装Package Control 按Ctrl+`调出console 粘贴安装代码(见扩展阅读)到底部命令行并回车: 重启Sublime Text 2。 如果在Perferences->package settings看到package control这一项,则安装成功。 可以到官网链接(见扩展阅读)下载Package Control.sublime-package放到sublime安装目录里的data里installed package文件夹(这个文件夹位置可能会不一样)[3] 2、用Package Control安装其他插件 按下Ctrl+Shift+P调出命令面板 输入install 调出 Install Package 选项并回车,然后在列表要安装的插件。 Sublime Text 推荐插件 GBK to UTF8 将文件编码从GBK转换成UTF8,快捷键Ctrl+Shift+C zenCoding zenCoding是一种快速的html、css编写方式。默认用tab键. 已经更名为Emmet。 JS Format 一个JS代码格式化插件。默认ctrl+alt+f Sublime Text 3 简体文设置方法: 按住 Ctrl + Shift + P,输入”install package”(第一次运行

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值