   getSelectedTexts: ->
     @editor.getSelections().map((selection) -> selection.getText()).join("\n")
 
+  insertTextAtPoint: (point, text) ->
+    @editor.setTextInBufferRange([point, point], text)
+
   isOverwrite: ->
     atom.config.get('vim-mode-plus-move-selected-text.overwrite')
 

  isCharacterwise: ->
    not @isLinewise()

  complementSpacesToPoint: ({row, column}) ->
    eol = @editor.bufferRangeForBufferRow(row).end
    if (fillCount = column - eol.column) > 0
      @editor.setTextInBufferRange([eol, eol], ' '.repeat(fillCount))

  isMovable: (selection) ->
    {start} = selection.getBufferRange()

          when 'up', 'down'
            for blockwiseSelection in @vimState.getBlockwiseSelections()
              @duplicateCharacterwise(blockwiseSelection)

  duplicateText: (selection, direction, count) ->
    rows = swrap(selection).lineTextForBufferRows()
