Vim Tips Wiki
Advertisement
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Duplicate tip

This tip is very similar to the following:

These tips need to be merged – see the merge guidelines.

Tip 874 Printable Monobook Previous Next

created February 11, 2005 · complexity intermediate · author David Vos · version 6.0


Do you want to make a 10-line /*C-style*/ comment disappear?

You can add folding capability to C-style comments using the command:

au BufNewFile,BufRead *.cpp,*.c,*.h,*.java syn region myCComment start="/\*" end="\*/" fold keepend transparent

This will work on C, .h, C++, and Java files.

The "keepend" and "transparent" commands are necessary to avoid overriding the default syntax highlighting of comments.

If you want to keep the "/*" beginning of the comment in the folded text, you can use the following function:

set foldtext=MyFoldText()
function MyFoldText()
  let line = getline(v:foldstart)
  let sub = substitute(line, '^[\t ]*', '', '')
  let nlines = v:foldend - v:foldstart + 1
  if strlen(nlines) == 1
    let nlines = " " . nlines
  elseif strlen(nlines) == 2
    let nlines = " " . nlines
  endif
  return "+-" . v:folddashes . nlines . ": " . sub
endfunction

The resulting line should look about the same as the default, without removing the comments.

Comments

Advertisement