           unless event.metaKey or event.ctrlKey or event.altKey
             keyChar = String.fromCharCode event.charCode
             if @movements[keyChar]
-              @countPrefixTimes =>
-                if "string" == typeof @movements[keyChar]
-                  window.getSelection().modify @alterMethod, @movements[keyChar].split(/\s+/)...
-                else if "function" == typeof @movements[keyChar]
-                  @movements[keyChar]()
+              @runCountPrefixTimes =>
+                switch typeof @movements[keyChar]
+                  when "string"
+                    window.getSelection().modify @alterMethod, @movements[keyChar].split(" ")...
+                  when "function"
+                    @movements[keyChar].call @
 
 class VisualMode extends Movement
   constructor: (options = {}) ->


# This prevents unmapped printable characters from being passed through to underlying page.
class SuppressPrintable extends Mode
  constructor: (options) ->

    handler = (event) =>
      if KeyboardUtils.isPrintable event
        if event.type == "keydown"
          DomUtils. suppressPropagation
          @stopBubblingAndTrue
        else
          @suppressEvent
      else
        @stopBubblingAndTrue

    @suppressPrintableHandlerId = handlerStack.push
      _name: "movement/suppress-printable"
      keydown: handler

    super options
    @onExit => handlerStack.remove @suppressPrintableHandlerId

# This watches keyboard events and maintains @countPrefix as count and other keys are pressed.
class MaintainCount extends SuppressPrintable
  constructor: (options) ->
    @countPrefix = ""
    super options

    @push
      _name: "movement/maintain-count"
