     @stdoutBySelection = new Map
     restorePoint = null
     unless @isMode('visual')
-      # swrap(selection).preserveCharacterwise() for selection in @editor.getSelections()
-
-      restorePoint = preserveSelectionStartPoints(@editor)
+      swrap.preserveCharacterwise(@editor)
       @target.select()
 
     running = finished = 0

      @restore = preserveSelectionStartPoints(@editor)
      @target.select()
      unless haveSomeSelection(@editor)
        @vimState.reset()
        @abort()
      @addHover(@editor.getSelectedText()[0])
    super

            resolve() if (running is finished)

          @runExternalCommand {command, args, stdout, exit, stdin}
          @restorePoint(selection) unless @isMode('visual')

  runExternalCommand: (options) ->
    {stdin} = options
