如何在vim中折叠所有出现的正则表达式?

bas*_*ibe 5 regex vim folding

我的一个同事正在使用一个可怕的源代码编辑器,该编辑器在代码中留下奇怪的注释。在Visual Studio中,我创建了一个宏,该只是折叠了所有这些注释块,因此我不必看到它们。

现在我想在vim中做同样的事情。

此正则表达式匹配以下每个块:

/^.*\/\* EasyCODE.*\(\(\n.*\*\/\)\|\(\n.*\/\*.*\)\|\(\n\/\/.*\)\)*/
Run Code Online (Sandbox Code Playgroud)

现在我敢打赌,有一种非常不错的方法可以在vim中折叠此模式的所有匹配项。但是,我对vim相当陌生,不知道该怎么做。

你能帮我吗?

编辑:一些例子:

这些注释块始终以开头/* EasyCODE。有时,注释*/在第一行的结尾处有结束符,有时仅在下一行。以下各行可能包含也可能不包含其他“ /* EasyCODE...”块。

这些块之一可能看起来像这样

/* EasyCODE ) */
/* EasyCODE ( 0 
some text */
/* EasyCODE F */
Run Code Online (Sandbox Code Playgroud)

或像这样

/* EasyCODE V8 */
/* EasyCODE ( 0 */
Run Code Online (Sandbox Code Playgroud)

或像这样

/* EasyCODE > */
Run Code Online (Sandbox Code Playgroud)

就像我说的,上述正则表达式抓住了所有这些。

DrA*_*rAl 4

我不完全清楚你的块的细节(因此关于提供示例的评论),但你可以使用这样的东西:

:set foldmarker=/\*\ EasyCODE,\*/
:set foldmethod=marker
Run Code Online (Sandbox Code Playgroud)

这将配置“标记”折叠方法,该方法在代码中查找某些标记,然后将起始标记设置为/* EasyCODE,将结束标记设置为*/。希望这会给您一些帮助您入门。如果您可以发布示例源文件,我也许可以提供更多建议。

:help folding
:help 'foldmarker'
:help 'foldmethod'
:help fold-marker
Run Code Online (Sandbox Code Playgroud)