How to select the comment block under the cursor in vim

selectionvim

I’d like to select (or delete, or change, or …) the whole block of commentary under my cursor.

If my cursor is at the beginning of the commentary block (i.e. over the opening comment character), and it’s a type of comment block with discrete start/end markers, then I can select the entire comment block with V%, but I don’t know of a movement to move to the first character of the block currently under the cursor.

Better yet would be an inner-text object for comments.

Does anybody know of any of the above, or how I could easily create the latter? (I’m new to vim as a whole.)

Best Answer

Assuming you're working with C++ block comments, these commands should do what you want:

  1. [/
  2. v
  3. ]/

These will:

  1. The first will jump to the start of a block comment (the slash in /*)
  2. The second will turn on select mode
  3. The third will jump to the end of a block comment (the slash in */), which selects the entire comment block.

I hope that helps!

EDIT: One note about using the lower case v instead of the upper case V. The upper case V will select entire lines while the lower case v will only select the text from the cursor's start position to the end position. Using the lower case v also means not having to hit the shift key. :)