         if @nextCharacterIsWordCharacter()
           @runMovements [ forward, character ], [ backward, word ]
           @collapseSelectionToFocus()
-          @runMovements ([0...count].map -> [ forward, word ])..., [ forward, word ], [ backward, word ]
-        else
-          @runMovements [ forward, word ], [ backward, word ], ([0...count].map -> [ forward, word ])...
+        @runMovements ([0...count].map -> [ forward, vimword ])...
 
       when sentence
         @runMovements [ forward, character ], [ backward, sentence ]

  # When visual mode starts and there's no existing selection, we launch CaretMode and try to establish a
  # selection.  As a heuristic, we pick the first non-whitespace character of the first visible text node
  # which seems to be big enough to be interesting.
  establishInitialSelectionAnchor: ->
    nodes = document.createTreeWalker document.body, NodeFilter.SHOW_TEXT
    while node = nodes.nextNode()

      DomUtils.suppressPropagation event
      @stopBubblingAndFalse

    super extend options, keydown: handler, keypress: handler, keyup: handler

# This monitors keypresses and maintains the count prefix.
class CountPrefix extends SuppressPrintable
  constructor: (options) ->
    @countPrefix = ""
    # This allows us to implement both "d3w" and "3dw". Also, "3d2w" deletes six words.
    @countPrefixFactor = options.initialCountPrefix || 1
    super options

