如何在Vim中自动折叠长C代码?

Léo*_* 준영 3 c vim folding

我经常遇到没有折叠的C代码.如果没有折叠,特别是对于长文件,阅读它们会很烦人.我怎么折叠它们?

And*_*ndy 12

根据语法折叠

:set foldmethod=syntax
Run Code Online (Sandbox Code Playgroud)

如果您想手动对要折叠的位进行操作

:set foldmethod=manual
Run Code Online (Sandbox Code Playgroud)

然后通过选择/移动并按下zf来创建新的折叠

shift-v j j zf
Run Code Online (Sandbox Code Playgroud)

(忽略空格)

编辑:另请参阅此答案的注释,用于缩进和标记foldmethods.

  • 另外值得一提的是foldmethod = marker.当我想忽略大块时,我会在注释中使用它并手动标记带{{{和}}}的部分. (2认同)

Roo*_*ook 5

我想你可能混淆了术语.你需要"包装"还是"折叠".包装是由于它们的长度通常不适合在屏幕上的线被包裹,即在屏幕上的几个连续线上显示(实际上,它是一行,在几行中 - 很难解释,最好看到实践).

在vim包装中设置

:set wrap
Run Code Online (Sandbox Code Playgroud)

把它打开,然后

:set textwidth=80
Run Code Online (Sandbox Code Playgroud)

确定vim应该在哪里包装文本(80个字符通常是一个很好的衡量标准).

另一方面,折叠是完全不同的事情.它是vim将几行代码(例如,一个函数)折叠成一行代码的那个.它有助于提高代码的可读性.Vim有几种折叠方法,你可以看到所有这些方法

:help folding
Run Code Online (Sandbox Code Playgroud)

你想要的是,我认为,语法折叠,但我可能是错的.我建议阅读帮助页面,它不长,而且非常有用.