     @editorView.command 'vim-mode:reset-command-mode', => @resetCommandMode()
 
     @handleCommands
-      'substitute': => new commands.Substitute(@editor, @)
-      'substitute-line': => new commands.SubstituteLine(@editor, @)
-      'insert-after': => new commands.InsertAfter(@editor, @)
-      'insert-after-end-of-line': => [new motions.MoveToLastCharacterOfLine(@editor), new commands.InsertAfter(@editor, @)]
-      'insert-at-beginning-of-line': => [new motions.MoveToFirstCharacterOfLine(@editor), new commands.Insert(@editor, @)]
-      'insert-above-with-newline': => new commands.InsertAboveWithNewline(@editor, @)
-      'insert-below-with-newline': => new commands.InsertBelowWithNewline(@editor, @)
-      'delete': => @linewiseAliasedOperator(operators.Delete)
-      'change': => @linewiseAliasedOperator(operators.Change)
-      'change-to-last-character-of-line': => [new operators.Change(@editor, @), new motions.MoveToLastCharacterOfLine(@editor)]
-      'delete-right': => [new operators.Delete(@editor, @), new motions.MoveRight(@editor)]
-      'delete-left': => [new operators.Delete(@editor, @), new motions.MoveLeft(@editor)]
-      'delete-to-last-character-of-line': => [new operators.Delete(@editor, @), new motions.MoveToLastCharacterOfLine(@editor)]
-      'yank': => @linewiseAliasedOperator(operators.Yank)
-      'yank-line': => [new operators.Yank(@editor, @), new motions.MoveToLine(@editor)]
-      'put-before': => new operators.Put(@editor, @, location: 'before')
-      'put-after': => new operators.Put(@editor, @, location: 'after')
-      'join': => new operators.Join(@editor, @)
-      'indent': => @linewiseAliasedOperator(operators.Indent)
-      'outdent': => @linewiseAliasedOperator(operators.Outdent)
-      'auto-indent': => @linewiseAliasedOperator(operators.Autoindent)
-      'move-left': => new motions.MoveLeft(@editor)
-      'move-up': => new motions.MoveUp(@editor)
-      'move-down': => new motions.MoveDown(@editor)
-      'move-right': => new motions.MoveRight(@editor)
-      'move-to-next-word': => new motions.MoveToNextWord(@editor)
-      'move-to-next-whole-word': => new motions.MoveToNextWholeWord(@editor)
-      'move-to-end-of-word': => new motions.MoveToEndOfWord(@editor)
-      'move-to-end-of-whole-word': => new motions.MoveToEndOfWholeWord(@editor)
-      'move-to-previous-word': => new motions.MoveToPreviousWord(@editor)
-      'move-to-previous-whole-word': => new motions.MoveToPreviousWholeWord(@editor)
-      'move-to-next-paragraph': => new motions.MoveToNextParagraph(@editor)
-      'move-to-previous-paragraph': => new motions.MoveToPreviousParagraph(@editor)
-      'move-to-first-character-of-line': => new motions.MoveToFirstCharacterOfLine(@editor)
-      'move-to-last-character-of-line': => new motions.MoveToLastCharacterOfLine(@editor)
+      'substitute': => new Commands.Substitute(@editor, @)
+      'substitute-line': => new Commands.SubstituteLine(@editor, @)
+      'insert-after': => new Commands.InsertAfter(@editor, @)
+      'insert-after-end-of-line': => [new Motions.MoveToLastCharacterOfLine(@editor), new Commands.InsertAfter(@editor, @)]
+      'insert-at-beginning-of-line': => [new Motions.MoveToFirstCharacterOfLine(@editor), new Commands.Insert(@editor, @)]
+      'insert-above-with-newline': => new Commands.InsertAboveWithNewline(@editor, @)
+      'insert-below-with-newline': => new Commands.InsertBelowWithNewline(@editor, @)
+      'delete': => @linewiseAliasedOperator(Operators.Delete)
+      'change': => @linewiseAliasedOperator(Operators.Change)
+      'change-to-last-character-of-line': => [new Operators.Change(@editor, @), new Motions.MoveToLastCharacterOfLine(@editor)]
+      'delete-right': => [new Operators.Delete(@editor, @), new Motions.MoveRight(@editor)]
+      'delete-left': => [new Operators.Delete(@editor, @), new Motions.MoveLeft(@editor)]
+      'delete-to-last-character-of-line': => [new Operators.Delete(@editor, @), new Motions.MoveToLastCharacterOfLine(@editor)]
+      'yank': => @linewiseAliasedOperator(Operators.Yank)
+      'yank-line': => [new Operators.Yank(@editor, @), new Motions.MoveToLine(@editor)]
+      'put-before': => new Operators.Put(@editor, @, location: 'before')
+      'put-after': => new Operators.Put(@editor, @, location: 'after')
+      'join': => new Operators.Join(@editor, @)
+      'indent': => @linewiseAliasedOperator(Operators.Indent)
+      'outdent': => @linewiseAliasedOperator(Operators.Outdent)
+      'auto-indent': => @linewiseAliasedOperator(Operators.Autoindent)
+      'move-left': => new Motions.MoveLeft(@editor)
+      'move-up': => new Motions.MoveUp(@editor)
+      'move-down': => new Motions.MoveDown(@editor)
+      'move-right': => new Motions.MoveRight(@editor)
+      'move-to-next-word': => new Motions.MoveToNextWord(@editor)
+      'move-to-next-whole-word': => new Motions.MoveToNextWholeWord(@editor)
+      'move-to-end-of-word': => new Motions.MoveToEndOfWord(@editor)
+      'move-to-end-of-whole-word': => new Motions.MoveToEndOfWholeWord(@editor)
+      'move-to-previous-word': => new Motions.MoveToPreviousWord(@editor)
+      'move-to-previous-whole-word': => new Motions.MoveToPreviousWholeWord(@editor)
+      'move-to-next-paragraph': => new Motions.MoveToNextParagraph(@editor)
+      'move-to-previous-paragraph': => new Motions.MoveToPreviousParagraph(@editor)
+      'move-to-first-character-of-line': => new Motions.MoveToFirstCharacterOfLine(@editor)
+      'move-to-last-character-of-line': => new Motions.MoveToLastCharacterOfLine(@editor)
       'move-to-beginning-of-line': (e) => @moveOrRepeat(e)
-      'move-to-start-of-file': => new motions.MoveToStartOfFile(@editor)
-      'move-to-line': => new motions.MoveToLine(@editor)
-      'move-to-top-of-screen': => new motions.MoveToTopOfScreen(@editor, @editorView)
-      'move-to-bottom-of-screen': => new motions.MoveToBottomOfScreen(@editor, @editorView)
-      'move-to-middle-of-screen': => new motions.MoveToMiddleOfScreen(@editor, @editorView)
-      'scroll-down': => new scroll.ScrollDown(@editorView, @editor)
-      'scroll-up': => new scroll.ScrollUp(@editorView, @editor)
-      'select-inside-word': => new textObjects.SelectInsideWord(@editor)
+      'move-to-start-of-file': => new Motions.MoveToStartOfFile(@editor)
+      'move-to-line': => new Motions.MoveToLine(@editor)
+      'move-to-top-of-screen': => new Motions.MoveToTopOfScreen(@editor, @editorView)
+      'move-to-bottom-of-screen': => new Motions.MoveToBottomOfScreen(@editor, @editorView)
+      'move-to-middle-of-screen': => new Motions.MoveToMiddleOfScreen(@editor, @editorView)
+      'scroll-down': => new Scroll.ScrollDown(@editorView, @editor)
+      'scroll-up': => new Scroll.ScrollUp(@editorView, @editor)
+      'select-inside-word': => new TextObjects.SelectInsideWord(@editor)
       'register-prefix': (e) => @registerPrefix(e)
       'repeat-prefix': (e) => @repeatPrefix(e)
-      'repeat': (e) => new operators.Repeat(@editor, @)
+      'repeat': (e) => new Operators.Repeat(@editor, @)
       'search-complete': (e) => @currentSearch
       'replace-complete': (e) => @currentReplace
       'repeat-search': (e) => @currentSearch.repeat() if @currentSearch?
       'repeat-search-backwards': (e) => @currentSearch.repeat(backwards: true) if @currentSearch?
-      'focus-pane-view-on-left': => new panes.FocusPaneViewOnLeft()
-      'focus-pane-view-on-right': => new panes.FocusPaneViewOnRight()
-      'focus-pane-view-above': => new panes.FocusPaneViewAbove()
-      'focus-pane-view-below': => new panes.FocusPaneViewBelow()
-      'focus-previous-pane-view': => new panes.FocusPreviousPaneView()
-
-  # Private: A helper to actually register the given commands with the
+      'focus-pane-view-on-left': => new Panes.FocusPaneViewOnLeft()
+      'focus-pane-view-on-right': => new Panes.FocusPaneViewOnRight()
+      'focus-pane-view-above': => new Panes.FocusPaneViewAbove()
+      'focus-pane-view-below': => new Panes.FocusPaneViewBelow()
+      'focus-previous-pane-view': => new Panes.FocusPreviousPaneView()
+
+  # Private: A helper to actually register the given Commands with the
   # editor.
   #
-  # commands - An object whose keys will be registered within the plugin's
+  # Commands - An object whose keys will be registered within the plugin's
   #            namespace and whose values are functions that returns the
   #            operation to push onto the stack or nothing at all.
   #
   # Returns nothing.
-  handleCommands: (commands) ->
-    _.each commands, (fn, commandName) =>
+  handleCommands: (Commands) ->
+    _.each Commands, (fn, commandName) =>
       eventName = "vim-mode:#{commandName}"
       @editorView.command eventName, (event) => @pushOperations(fn(event))
 

  # Returns nothing.
  registerPrefix: (e) ->
    name = atom.keymap.keystrokeStringForEvent(e.originalEvent)
    new prefixes.Register(name)

  # Private: A generic way to create a Number prefix based on the event.
  #

        @topOperation().compose(poppedOperation)
        @processOpStack()
      catch e
        (e instanceof Operators.OperatorError) and @resetCommandMode() or throw e
    else
      @history.unshift(poppedOperation) if poppedOperation.isRecordable()
      poppedOperation.execute()
