vim折叠

原创 2012年03月29日 22:56:27
手动折叠:
zfap
你将会看到该段落被一行高亮的文本所代替。你已经创建了一个折叠了。|zf|是一个操作符,而|ap|是一个文本对象。你可以将|zf| 操作符跟任何一个移动命令联用,为所经 之处的文本创建一个折叠。|zf| 也能在可视模式下使用
说明:ap是用以选择一个段落。这里a的用法如下所示:
 
" "this is a example" "
使用的方法就是<action>a<标识,可以是',",],}等>
只要在内层双引号里面输入va" 就会选中"this is a example"
也可以在内层双引号中输入y2a" 就会复制" this is a example" "
 
{This is another example}
只要在{}内的任意位置输入va}就会复制{This is another example}。
 
zf20G 从当前位置折叠到20行
zfgg 从当前位置折叠到文件头,非常适合编程的时候隐藏文件顶部的头文件包含,源文件注释
 
 
作者常用:
写程序时都是以函数为单位,可以很方便的折叠一个函数,而保留函数头部。如下函数,我们将光标停留在{处,输入zf%
#include <stdio.h>
int main(int argc, char* argv[])
{
return 0;
}
 
 
效果就出来了:
#include <stdio.h>
int main(int argc, char* argv[])
+:-- 3行  {-------------------------------------------------}
 
 
若要再阅读那些文本,则可以键入以下命令打开该折叠:
zo
 
你还可以用一下命令再关闭该折叠:
zc
 
所有的折叠命令都以'z' 开头。展开你的想像力,这个字母看起来就像一张折叠起来的
纸的侧面。而"z" 后面可用的字母,由于采用了帮助记忆方法选择,很容易记得住:
 
        zf      F-old creation (创建折叠)
        zo      O-pen a fold (打开折叠)
        zc      C-lose a fold (关闭折叠)
 
 
一次打开所有折叠:
zr  zR(用于有递归折叠的时候,功能与zr类似)
一次关闭所有折叠:
zm  zM(用于有递归折叠的时候,功能与zm类似)
 
 
更常用的命令:
zi (当我们创建了折叠以后,可以使用zi关闭所有折叠,将光标移到想浏览的文本处,再按zi,打开所有折叠)
 
 
折叠控制:
有时候,查看或记住一个折叠在哪儿,挺不容易的。更别说用|zo| 命令来打开了。要查
看那些已定义的折叠:
 
        :set foldcolumn=4
 
这个命令将在窗口左边显示一小栏来标识各个折叠。一个"+" 表示某个关闭的折叠。一
个"-" 表示每个打开的折叠的开头,而"|" 则表示该折叠内其余的行。
取消左边的小栏:
        :set foldcolumn&
 
你可以在折叠栏内用鼠标点击"+",以打开一个折叠。点击"-" ,或在它之下的某个
"|" ,将关闭一个打开的折叠。
 
存储和恢复一个折叠:
当你关闭一个文件,去做其他事情,或编辑其他文件,回来以后编辑同一个文件,如果折叠是手动方式创建的,则所有的折叠都消失了!为了保存折叠,可以使用:
:mkview
这将存储那些影响文件视图的设定及其他内容。
稍后回到同一个文件时,可以重新载入这个视图:
:loadview
 
你可以为一个文件储存多至十个视图。例如,把当前设置储存为第三个视图,并载入第
二个视图:
 
        :mkview 3
        :loadview 2
 
 
依赖缩进折叠:
如果希望依赖缩进折叠,则首先需要设置
:set foldmethod=indent
 
如果你写的代码比较规范,不规范也没事,先全部选中,然后按“=”,代码就规范一些了。完整的命令是ggvG=
然后试试zm,zr有什么效果,这个功能对于程序员还是挺有用的。当我们设置了foldmethod后就不能再手动创建折叠了,对于我这样喜欢不喜欢被约束的这个功能其实很不咋滴。
我们只需要重新设置foldmethod就可以了。
:set foldmethod& (后面加个&就是恢复默认设置,反正我是这么理解的)
 
其他折叠方式:
依赖标识折叠
依赖语法折叠
依赖表达式折叠
参见:http://vimcdoc.sourceforge.net/doc/usr_28.html#28.6

参考资料:http://vimcdoc.sourceforge.net/doc/usr_28.html



在quickfix模式里经常用到的命令有:
:cc 显示详细错误信息 ( :help :cc )
:cp 跳到上一个错误 ( :help :cp )
:cn 跳到下一个错误 ( :help :cn )
:cl 列出所有错误 ( :help :cl )
:cw 如果有错误列表,则打开quickfix窗口 ( :help :cw )
:col 到前一个旧的错误列表 ( :help :col )
:cnew 到后一个较新的错误列表 ( :help :cnew )


TagList操作:

 

        跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样
o            在一个新打开的窗口中显示光标下tag
      显示光标下tag的原型定义
u            更新taglist窗口中的tag
s            更改排序方式,在按名字排序和按出现顺序排序间切换
x            taglist窗口放大和缩小,方便查看较长的tag
+            打开一个折叠,同zo
-            将tag折叠起来,同zc
*            打开所有的折叠,同zR
=            将所有tag折叠起来,同zM
[[           跳到前一个文件
]]           跳到后一个文件
q            关闭taglist窗口
         显示帮助
在浏览代码时Taglist常用操作为:
gd 转到当前光标所指的局部变量的定义
* 转到当前光标所指的单词下一次出现的地方
# 转到当前光标所指的单词上一次出现的地方

在 Vim 的命令模式中输入 :%s/^M$//g 后,回车即会自动删除该文件中的所有 ^M 字符。

注意: ^M 要用 Ctrl + v,  Ctrl + m 来输入,M 后面的 $ 代表匹配行尾的内容,最后的 g 则表示每行中匹配到的内容都要置换。


删除行尾空格的命令: :%s/\s\+$//



vim 中代码的折叠和打开

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

vim代码折叠功能

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

VIM折叠的几种用法

vim 有几种折叠策略。一般默认的是手动折叠(manual)。如果是写程序,可以按语法(syntax)折叠,或者按缩进(indent)折叠。方法是 :set foldmethod=syntax 或者是...
  • u014057054
  • u014057054
  • 2017年05月22日 15:49
  • 391

vim的折叠功能

z的意思就是他的形状, 像一个折叠的东西, 折叠相关的命令都是z开头的, 新版本的拼写检查命令也有以z开头的。 f的意思是fold。 所以zf就是折叠。 你可以在visual模式下选定, 再按zf, ...
  • mrliucsdn
  • mrliucsdn
  • 2016年06月14日 10:52
  • 460

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自动语法折叠

当你在 .vimrc里设置了语法折叠以后,即:set foldmod=syntax以后,vim默认会为你将所有代码进行语法折叠,你可以通过配置 set foldlever =  1999999999...
  • liuyanzhi08
  • liuyanzhi08
  • 2012年03月07日 17:32
  • 2273

vim折叠代码

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

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

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

vim——给本文件所有函数折叠

vim中当打开一个c/c++文件有多个个函数时,可以考虑把所有函数体折叠起来,下面方法可以实现快速折叠:           1.搜索 ‘{’ 左花括号,即 执行  /{,这时所有左花括号均高亮搜索...
  • cjw517
  • cjw517
  • 2012年06月27日 15:09
  • 9739

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

created by Jorrit Wiersma   script type utility   description ...
  • q553716434
  • q553716434
  • 2012年05月13日 08:05
  • 2532
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:vim折叠
举报原因:
原因补充:

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