题
我经常遇到没有折叠的 C 代码。如果没有折叠,阅读它们会很烦人,尤其是长文件。我怎样才能折叠它们?
解决方案
要根据语法折叠
:set foldmethod=syntax
如果要手动做它在要折叠起来的位
:set foldmethod=manual
然后通过选择/移动并压紧的zf创建新的褶皱 e.g。
shift-v j j zf
(忽略空格)
编辑:也见此答案的征求意见缩进和标记foldmethods
其他提示
我想你可能混合的术语。你需要“包装”或“折叠”。包装是一个地方,不会通常适合在屏幕上,由于其长度线,包裹,即在屏幕上的几个连续的线所示(实际上,它是一个线,在几行 - 很难解释的,最好看的实践)。
在VIM包装是由
设置:set wrap
将其打开,以及
:set textwidth=80
,以确定Vim应该自动换行(80个字符通常是一个很好的量度)。
折叠,另一方面是一个完全不同的问题。这是一个其中VIM折叠的几行代码(例如,函数)转换成一个代码行。它是提高代码的可读性非常有用。 Vim有多种折叠方式,你可以看到,如果所有的人,你
:help folding
您正在寻找的,我想会是这样,语法折叠什么,但我可能是错的。我建议你阅读帮助页面,这是不长,而且非常有用的。
我已经卷起折叠为C和C ++ 插件。这已经超出了与语法折叠完成的(可能是它可以改进,我不知道),并留下较少嘈杂,并没有真正有用的东西展现出来,相比于缩进和基于标记的折叠。
需要说明:为了有体面的反应时间,我不得不做出一些简化,有时结果相当混乱的(我们必须键入zx
修复它)
这里是一个小截屏看插件如何折叠正确平衡的C ++源代码,其中当前没有被修改:(
在六(相对于VIM)的回答是:
:set wm=1
此设置涡卷余量于一个字符的行的结束之前。这是不是与可变大小的窗口(其所作出的绿屏感时,它是很难改变的大小)。
世界上最好的规格这意味着还有一个替代的方法来做到这在vim:
:set textwidth=30
请参阅: VimDoc用户手册第25.1节
在你可能要设置
:set foldmethod=syntax
但不要手动将在!这就是错过了的它具有数百种文件类型已经内置自定义设置Vim的最大特点之一。要获取的是,添加到您的〜/ .vimrc
filetype plugin on
filetype indent on
文件类型检测主要基于扩展,在这种情况下* .c文件。参见:帮助:对文件类型的更多信息。您还可以自定义这些基于文件类型设置。
其实,还有一个非常直接有效的方法,那就是使用 foldmethod = marker
并设置 foldmarker
成为 {,}
. 。那么折叠结果将如下所示:
- 所有功能都折叠起来。基本上,它看起来就像IDE中的轮廓。(你也可以
set foldlevel=1
或更多,如果您不想一开始就折叠所有内容)
- 这就是当您使用 level-1 via 打开普通函数时的样子
zo
.
另外,按语法进行折叠需要一些额外的工作,这里有一个很好的方法 教程 关于它。但我认为折叠 marker={,}
已经足够了,最重要的是,它简单、整洁。