登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

有事儿您说话!

爱吃,爱旅游,爱什么,好的事儿我都爱

 
 
 

日志

 
 
 
 

VIM 设置折叠功能  

2010-03-17 16:15:55|  分类: 计算机学习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

zfap

将游标所在处的那个段落折叠成一行。

zf7G

自光标所在处至全文第 7 行折叠起来。

:3,9fold

将第 3 行至第 7 行折叠起来。

5zF

将光标所在处起算 5 行的内容折叠起来。

也可以将所要折叠的部份以 Shift+v 标记起来,然H zf 就会将标记的内容折叠起来。

zo

将游标所在处的折叠打开。open

zc

将光标所在处已打开的内容再度折叠起来。close

zr

将全文的所有折叠依层次通通打开。reduce

zm

将全文已打开的折叠依层次通通再折叠起来。more

zR

作用和 zr 同,但会打开含巢状折叠(折叠中又还有折叠)的所有折叠。

zM

作用和 zm 同,但对于巢状折叠亦有作用。

zi

这是个切换,是折叠与不折叠指令间的切换。

zn

打开全文的所有折叠。fold none

zN

这是 zn 的相对指令,恢复所有的折叠。

那这个 zn zR 不是都一样吗?不是的,zR 的作用于 foldlevel 这个设定项,是控制折叠的层次,而 zn 则是作用于 foldenable 这个设定 项,他是不管层次的,只有全关或全开。当然,所得到的结果有许多情形下是一样的,但里子不一样,这在写 Vim script 时得小心分辨。

通常,光标在折叠处向左或向右移的话,折叠也会自动打开。在进入编辑模式,例如按 i o,这是也会自动打开折叠。

其它的复制、删除及替换等动作还是可以和一般正常文稿一样的操作,例如 dd 就会删掉一整个折叠,yy 会复制一整个折叠,p 会贴上一整个折叠。把整个折叠就当做是一行就行了。

11.1.3 折叠的记忆

手动折叠,在下一次开档时就消失了,但我们可以使用 :mkview 把折叠的情形记忆起来,下一次加载同一个档案时就可以下 :loadview,记忆起以前折叠的情况。当然,使用手动折叠及记忆,在操作上并不是很方便,除非是把他写成 Vim script 来叫用。因此下一节要谈到自动折叠,这可能会比较实用一点。

11.2 自动折叠

这里比较实用的是依文件内的标志来折叠,因此其它的方式就只稍微介绍了。

11.2.1 以缩行为依据

:set foldmethod=indent 就会依缩行来折叠,本来预设是 :set foldmethod=normal。请注意,此时手动折叠的设定会被停止无法使用。

11.2.2 以特殊的表示法为依据

:set foldmethod=expr, 另外还要设定 :set foldexpr=...,可参考在线使用手册 :h fold-expr 的例子。

11.2.3 以语法为依据

这是在定义语法(syntax)文件时同时加入折叠的定义。然后,set foldmethod=syntax 就会依照这个语法定义文件去折叠,请 :h syn-fold

11.2.4 以是否更改过为依据

这在进入 vimdiff(即 vim -d file1 file2 时会自动进入 foldmethod=diff 的 模式,因此要 diff 设定项设在同一个屏幕显示才行。以便整体的浏览。当然要自行更 改默认值亦可。预设是:

setlocal diff foldmethod=diff scrollbind nowrap foldlevel=1

这样一来,两个档案相同的部份会折叠起来,没有折叠的部份就是有差异的地方。

11.2.5 以文件上的标志为依据

这是跟据文章中的标志(marker)来做折叠。这些标志,起于 {{{,止于 }}},这中间的部份会折叠起来。通常这些标志是藏在批注栏里头, 例如 C 程序代码的 /* */ 之间,shell script # 之后,Vim script " 之后,得视程序语言的不同而 定,因此一般的文章就不适合使用了。

这些预设的标志也可以由 foldmarker 来更改,但 为了文件的流通性,建议使用默认值就可以了。

当然,一些程序代码加载时再来设定 :set foldmethod=marker 就太麻烦了,这个设定可以设在文件内,例如:

#!/bin/sh

# 这是一个 sh script

# {{{

……

这里是 script 内容,由 vim 打开这

个档时,这个部份会自动折叠起来。

……

# }}}

# vim:fdm=marker:ts=2

  评论这张
 
阅读(2077)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018