   execute: (count=1) ->
     # If we've typed, we're being repeated. If we're being repeated,
     # undo transactions are already handled.
-    @editor.beginTransaction() unless @typed
+    @editor.beginTransaction() unless @typingCompleted
     operator = new Delete(@editor, @vimState, allowEOL: true, selectOptions: {excludeWhitespace: true})
     operator.compose(@motion)
 

      else
        @editor.insertNewlineAbove()

    return super if @typed

    @vimState.activateInsertMode(transactionStarted = true)
    @typed = true

  onLastRow: ->
    {row, column} = @editor.getCursorBufferPosition()

    @typedText = bundler.buildInsertText()

  execute: ->
    if @typingCompleted
      @undoTransaction =>
        @editor.getBuffer().insert(@editor.getCursorBufferPosition(), @typedText, true)
    else
      @vimState.activateInsertMode()
      @typingCompleted = true

  inputOperator: -> true

