2010-09-21 77 views
3

我的一位同事正在使用一个可怕的源代码编辑器,在代码中留下奇怪的注释。在Visual Studio中,I created a macro,它简单地折叠所有这些注释块,因此我不必看到它们。如何在vim中折叠所有的正则表达式?

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

此正则表达式匹配的那些块中的每一个:

/^.*\/\* EasyCODE.*\(\(\n.*\*\/\)\|\(\n.*\/\*.*\)\|\(\n\/\/.*\)\)*/ 

现在我敢打赌,有折叠这种模式的所有匹配vim的一个非常好的方式。不过,我对vim并不熟悉,不知道如何去做。

你能帮我吗?

编辑:一些例子:

这些注释块总是/* EasyCODE开始。有时候,评论在第一行的末尾有右边的*/,有时只在下一行。以下行可能包含或不包含其他“/* EasyCODE ...”块。

其中的一个块的可能看起来像这样

/* EasyCODE) */ 
/* EasyCODE (0 
some text */ 
/* EasyCODE F */ 

或类似这样的

/* EasyCODE V8 */ 
/* EasyCODE (0 */ 

或类似这样的

/* EasyCODE > */ 

正如我所说,上述正则表达式捕获它们。

+0

你能举一个例子,说明块的样子吗? – DrAl 2010-09-21 12:43:50

回答

2

我不是你的块的细节(因此关于提供一个例子,评论)完全清楚,但你可以使用这样的事情:

:set foldmarker=/\*\ EasyCODE,\*/ 
:set foldmethod=marker 

这将配置“标记”折叠方法它会在代码中查找特定的标记,然后将起始标记设置为/* EasyCODE,并将结束标记设置为*/。希望这会给你一些启动的机会。如果您可以发布示例源文件,我可能会提供更多的建议。

:help folding 
:help 'foldmarker' 
:help 'foldmethod' 
:help fold-marker