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-
afterare
because-
is not part of'iskeyword'
, - the
W
motion ("WORD") would jump todoing
, - the
iw
text-object ("inner word") would coverare
, - the
iW
text-object ("inner WORD") would coverhow-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.