vim fold

原创 2009年09月17日 00:13:00
最近需要折叠, 于是找了一下。 其实手册里面有, 不过手册做的太好太详细的后果往往就是让人懒得看了。 写的东西超过五六屏以后, 感觉翻来翻去就不怎么方便了, 看起来也很混乱。 这个时候最好就能折叠起来。 VIM里面也有VS里面那样的折叠功能, 而且不需要用鼠标去点那个减号和加号。
建立折叠
z的意思就是他的形状, 像一个折叠的东西, 折叠相关的命令都是z开头的, 新版本的拼写检查命令也有以z开头的。 f的意思是fold。 所以zf就是折叠。 你可以在visual模式下选定, 再按zf, 可以将选定的全部折叠。 也可以zf9j, 这样可以将下面9行的内容折起来。 也可以用marker, 还可以用行号:20,50, 就可以把20行到五十行折叠起来 。 总之可以用一般的定位的方法来告诉VIM你要折叠那些地方。
我觉得比较有用的是匹配括号的折叠, 移动到一个花括号{上, 用zfa}, 就可以将下面的匹配的花括号之间的内容折起来, 这样可以很方便的折起函数。 其他的折叠方法还有zf/string, 可以折叠到下一个匹配的string, 不过好像不太实用。
使用折叠
移动的时候在前面加一个z就可以在折叠的地方移动, 比如zj,就会跳到下一个折叠, zk就是上一个。  要打开的话可以zo,o是open的意思, zO打开所有的折叠。 关上用zc, c是close。 在zO之后用zc会关上所有打开的折叠。 折叠可以嵌套, zr可以打开第一层的折叠,zR可以打开所有层的折叠, 与之对应的是zm和zM, 是按层关上折叠。 比如说按zm, 会从最里层的层叠关起, 连续zm就会一直关到最上层的折叠。
查找到了折叠里面会将折叠打开, 处理完了之后要自己将折叠关上。
折叠选项
可以让VIM根据语法, 缩进,标记自动折叠。 用set foldmethod=foldoption 来设定。 可以查看一下foldmethod

 

 

保留折叠
要下一次打开的时候还保留折叠可以在离开的时候:mkview

 

,再进来的时候:loadview就可以了。 当然也可以将这两句加到vimrc里面让其自动完成。

 

 

au BufWinLeave * mkview
au BufWinEnter * silent loadview
这样每次就可以看到上次的折叠了。

 

 

 

 

vim从入门到精通--基础命令使用

-
  • 1970年01月01日 08:00

VIM fold 折叠

1. 折叠方式 可以通过设置foldmethod来指定折叠方式。 注意,每一种折叠方式互不兼容,如果选择其中一种就不能设定为其它方式。 set foldmethod= or set fdm=...
  • jerry_zjunwei
  • jerry_zjunwei
  • 2012-06-02 16:27:59
  • 4298

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

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

linux :vim fold

在VIM下,折叠文本一般情况下我是使用Visual模式选中一些文本,然后用zf命令把他折叠出来,但是经常使用visual模式,感觉不是很方便,不过经常使用感觉不是很方便,找到帮助时.发现可以使用命令模...
  • hunter___
  • hunter___
  • 2017-12-21 10:48:34
  • 66

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

created by Jorrit Wiersma   script type utility   description ...
  • q553716434
  • q553716434
  • 2012-05-13 08:05:03
  • 2606

函数式编程里面的fold

第一:基本概念 fold在函数式编程里面的基本含义是遍历数据结构,最后产生一个聚合值。最简单的例子是sum list = foldl (+) 0 list fold抽象了两个动作,一个是遍历数据结...
  • u012426992
  • u012426992
  • 2014-03-23 13:35:31
  • 1183

vim fold code

Personally I can't convince myself to litter my code with the markers. I've become pretty used to (a...
  • qq550764107
  • qq550764107
  • 2014-03-02 22:05:31
  • 436

Spark RDD的fold算子

fold算子签名:  def fold(zeroValue: T)(op: (T, T) => T): T ,算子其实就是先对rdd分区的每一个分区进行使用op函数,在调用op函数过程中将zeroVa...
  • Dax1n
  • Dax1n
  • 2017-06-09 22:48:10
  • 435

SPARK里的reduce(),fold(),以及aggregate()

以上三个方法操作都是对RDD进行的聚合操作。 reduce()与fold()方法是对同种元素类型数据的RDD进行操作,即必须同构。其返回值返回一个同样类型的新元素。 num=sc.paralleliz...
  • wy250229163
  • wy250229163
  • 2016-08-29 16:27:40
  • 4260

fold函数和reduce函数的区别(不特指spark)

In a fold over a collection, the accumulator type may be different than the type of the collection, ...
  • u013613428
  • u013613428
  • 2017-09-15 10:47:16
  • 599
收藏助手
不良信息举报
您举报文章:vim fold
举报原因:
原因补充:

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