Regex 如何在vim中折叠所有出现的正则表达式?
我的一个同事正在使用一个可怕的源代码编辑器,它会在代码中留下奇怪的注释。在VisualStudio中,我可以简单地折叠所有的注释块,这样我就不必看到它们了 现在我想在vim中做同样的事情 此正则表达式匹配这些块中的每一个:Regex 如何在vim中折叠所有出现的正则表达式?,regex,vim,folding,Regex,Vim,Folding,我的一个同事正在使用一个可怕的源代码编辑器,它会在代码中留下奇怪的注释。在VisualStudio中,我可以简单地折叠所有的注释块,这样我就不必看到它们了 现在我想在vim中做同样的事情 此正则表达式匹配这些块中的每一个: /^.*\/\* EasyCODE.*\(\(\n.*\*\/\)\|\(\n.*\/\*.*\)\|\(\n\/\/.*\)\)*/ 现在我打赌有一种非常好的方法可以在vim中折叠此模式的所有匹配项。然而,我对vim还是比较陌生,不知道如何做到这一点 你能帮我吗 编辑:一
/^.*\/\* EasyCODE.*\(\(\n.*\*\/\)\|\(\n.*\/\*.*\)\|\(\n\/\/.*\)\)*/
现在我打赌有一种非常好的方法可以在vim中折叠此模式的所有匹配项。然而,我对vim还是比较陌生,不知道如何做到这一点
你能帮我吗
编辑:一些示例:
这些注释块始终以/*EasyCODE
开头。有时注释在第一行末尾有一个结束符,有时仅在下一行。以下行可能包含也可能不包含附加的“/*EasyCODE
..”块
其中一块可能是这样的
/* EasyCODE ) */
/* EasyCODE ( 0
some text */
/* EasyCODE F */
/* EasyCODE V8 */
/* EasyCODE ( 0 */
/* EasyCODE > */
还是像这样
/* EasyCODE ) */
/* EasyCODE ( 0
some text */
/* EasyCODE F */
/* EasyCODE V8 */
/* EasyCODE ( 0 */
/* EasyCODE > */
还是像这样
/* EasyCODE ) */
/* EasyCODE ( 0
some text */
/* EasyCODE F */
/* EasyCODE V8 */
/* EasyCODE ( 0 */
/* EasyCODE > */
正如我所说,上面的正则表达式捕捉到了所有这些元素。我不完全清楚您的块的细节(因此评论提供了一个示例),但是您可以使用如下内容:
:set foldmarker=/\*\ EasyCODE,\*/
:set foldmethod=marker
这将配置在代码中查找特定标记的“标记”折叠方法,然后将开始标记设置为/*EasyCODE
,将结束标记设置为*/
。希望这会给你一些东西,让你开始。如果你能发布一个示例源文件,我可能会提供更多的建议
:help folding
:help 'foldmarker'
:help 'foldmethod'
:help fold-marker
你能举例说明这些块是什么样子吗?答案是正确的,但重要的是,
foldmarker
条目是文本字符串,而不是正则表达式。