A colleague of mine is using a horrible source code editor that leaves strange comments all over the code. In Visual Studio, I created a macro, that simply folds all those comment blocks so I don't have to see them.
Now I would like to do the very same thing in vim.
This regex matches every one of those blocks:
/^.*\/\* EasyCODE.*\(\(\n.*\*\/\)\|\(\n.*\/\*.*\)\|\(\n\/\/.*\)\)*/
Now I bet there is a really nice way to fold all matches of this pattern in vim. However, I am rather new to vim and don't know how to do this.
Could you help me there?
Edit: some examples:
These comment blocks always begin with /* EasyCODE
. Sometimes the comment have a closing */
right on the end of the first line, sometimes only on the next line. The following lines might or might not contain additional "/* EasyCODE
..." blocks.
One of these blocks could look like this
/* EasyCODE ) */
/* EasyCODE ( 0
some text */
/* EasyCODE F */
or like this
/* EasyCODE V8 */
/* EasyCODE ( 0 */
or like this
/* EasyCODE > */
As I said, the above regex catches them all.
I'm not completely clear on the details of your blocks (hence the comment about providing an example), but you could use something like this:
:set foldmarker=/\*\ EasyCODE,\*/
:set foldmethod=marker
This will configure the 'marker' fold method that looks for certain markers in the code and then it will set the starting marker to /* EasyCODE
and the ending marker to */
. Hopefully this will give you something to get you started. If you could post a sample source file, I may be able to offer some more advice.
:help folding
:help 'foldmarker'
:help 'foldmethod'
:help fold-marker
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With