A while back I posted a tip about how to quickly comment out a block of lines in vim. Since then I’ve gotten even more lazy and found an even quicker way that involves much less effort on my part. I think this originally came from a vim tip that I CBA to find now, so I’m reposting here to spread the love.
First, add a simple function to do the work:
" Toggle comments on a visual block function! CommentLines() try execute ":s@^".g:StartComment." @\@g" execute ":s@ ".g:EndComment."$@@g" catch execute ":s@^@".g:StartComment." @g" execute ":s@$@ ".g:EndComment."@g" endtry endfunction
This function comments starting at the beginning of the line. You can modify this behavior to suit your needs by changing the regular expression.
Next you’ll need to set the comment characters for the language you’re working in. My preferred way is to use autocmds to set these based on the current filetype.
That’s it! Optionally (do this, really it’s stupid not to), you can add a keymap to quickly call our function.
vmap <Leader>c :call CommentLines()<CR>
Now to use this function, just select a visual block and hit your keymap to toggle comments on that block. Voila!