 
         for blockwiseSelection in @getBlockwiseSelections()
           @duplicateBlockwise(blockwiseSelection)
+        for $selection in swrap.getSelections(@editor)
+          $selection.saveProperties()
+        for blockwiseSelection in @getBlockwiseSelections()
+          blockwiseSelection.saveProperties()
 
         isOneHeight = (blockwiseSelection) -> blockwiseSelection.getHeight() is 1
         if wasCharacterwise and @vimState.getBlockwiseSelections().every(isOneHeight)

    @countTimes @getCount(), =>
      for selection in @getSelections()
        fn(selection)

  execute: ->
    @withGroupChanges =>

    linewiseDisposable = switchToLinewise(@editor) unless @vimState.isMode('visual', 'linewise')
    for selection in @getSelections()
      @duplicateLinewise(selection)
      swrap(selection).fixPropertyRowToRowRange()
    linewiseDisposable?.dispose()

class DuplicateSelectedTextUp extends DuplicateSelectedText
