我经常遇到没有折叠的C代码。 如果没有折叠,特别是对于长文件,阅读它们会很烦人。 我怎么折叠它们?
根据语法折叠
:set foldmethod=syntax
如果您想手动对要折叠的位进行操作
:set foldmethod=manual
然后通过选择/移动并按下zf来创建新的折叠,例如
shift-v jj zf
(忽略空格)
编辑:另请参阅此答案的注释,用于缩进和标记foldmethods。
我想你可能混淆了术语。 你需要“包装”还是“折叠”。 包装是由于它们的长度而通常不适合在屏幕上的线被包裹,即在屏幕上的几个连续线上显示(实际上,它是一行,在几行中 – 很难解释,最好看到实践)。
在vim包装中设置
:set wrap
把它打开,然后
:set textwidth=80
确定vim应该在哪里包装文本(80个字符通常是一个很好的衡量标准)。
另一方面,折叠是完全不同的事情。 它是vim将几行代码(例如,一个函数)折叠成一行代码的那个。 它有助于提高代码的可读性。 Vim有几种折叠方法,你可以看到所有这些方法
:help folding
你想要的是,我认为,语法折叠,但我可能是错的。 我建议阅读帮助页面,它不长,而且非常有用。
我已经推出了C和C ++的折叠插件 。 它超越了语法折叠所做的(可能是它可以改进,我不知道),并且与压痕和基于标记的折叠相比,留下更少的噪音并且没有真正有用的东西展开。
需要注意的是:为了获得不错的反应时间,我不得不进行一些简化,有时候结果非常混乱(我们必须输入zx
来修复它)。
这是一个小小的截屏video,看看该插件如何折叠正确平衡的C ++源代码,目前尚未被修改:(
在vi(而不是vim)中,答案是:
:set wm=1
这会将换行边距设置为行尾之前的一个字符。 这不是具有可变尺寸窗户的世界上最好的规格(当难以改变尺寸时,绿色屏幕是有意义的)。
这意味着在vim中还有另一种方法可以做到这一点:
:set textwidth=30
请参阅: VimDoc用户手册第25.1节
你可能想要这个设置
:set foldmethod=syntax
但是不要手动把它! 多数人错过了其中一个Vims最大的function,即已经内置了数百种文件类型的自定义设置。 为此,将其添加到〜/ .vimrc中
filetype plugin on filetype indent on
文件类型检测主要基于扩展名,在本例中为* .c文件。 有关详细信息,请参阅:help:filetype。 您还可以自定义这些基于文件类型的设置。
实际上,还有另一种非常直接有效的方法,即使用foldmethod = marker
并将foldmarker
设置为{,}
。 然后折叠结果如下:
另外,要通过语法进行折叠需要一些额外的工作,这里有一个很好的教程 。 但我认为用marker={,}
折叠是足够的,最重要的是,它简单而整洁。
以上就是c/c++开发分享如何在Vim中自动折叠长C代码?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/559594.html