Selecting entire word that includes dashes

besides the other answers (using Word instead of word) if you want this to be the default behaviour (such that - will be considered a word character - not a word delimiter) you may add this to your vimrc

set iskeyword+="-"

after that viw will give you the expected result. type :h iskeyword for more info about it


Vim has the notion of "word" and "WORD", where a "word" is a sequence of characters in the 'iskeyword' option and a "WORD" is a sequence of non-whitespace characters.

Thus…

  • the w motion ("word") would jump to the - after are because - is not part of 'iskeyword',
  • the W motion ("WORD") would jump to doing,
  • the iw text-object ("inner word") would cover are,
  • the iW text-object ("inner WORD") would cover how-are-you,
  • and so on for other motions and text-objects.

What you are looking for is the iW text-object:

viW

:help navigation will blow your mind.

Tags:

Vim