 
 class TransformString extends Operator
   @extend(false)
-  restoreCursor: default: 'start', stay: 'point', config: 'stayOnTransformString'
-  stayOnLinewise: true
+  cursorPositionOnOperate:
+    default: 'startPointOfSelection'
+    stay: 'pointBeforeSelect'
+    config: 'stayOnTransformString'
+    stayOnLinewise: true
 
   execute: ->
     @eachSelection (s) =>

class ReplaceWithRegister extends Operator
  @extend()
  hover: icon: ':replace-with-register:', emoji: ':pencil:'
  restoreCursor: default: 'start', stay: 'point', config: 'stayOnReplaceWithRegister'
  execute: ->
    @eachSelection (s) =>
      newText = @vimState.register.getText() ? s.getText()

class Yank extends Operator
  @extend()
  hover: icon: ':yank:', emoji: ':clipboard:'
  cursorPositionOnOperate:
    default: 'startPointOfSelection'
    stay: 'pointBeforeSelect'
    config: 'stayOnYank'
    stayOnLinewise: true

  execute: ->
    @eachSelection (s) =>
