anchor.diff:                  else
                       vimState.visualStartOffset, finish + if command.textObject = EndOfLine then 0 else 1
               editor.SetSelection(start, finish)
  -            if editor.SelectionMode = SelectionMode.Block then dispatchCommand TextEditorCommands.ToggleBlockSelectionMode
  +            if editor.SelectionMode = SelectionMode.Block then EditActions.ToggleBlockSelectionMode editor
           | VisualBlockMode, Move | VisualBlockMode, SwitchMode _ ->
               let selectionStartLocation = editor.OffsetToLocation vimState.visualStartOffset
               let leftColumn, rightColumn =
  
positive.code:                         let newState = { vimState with mode = mode; visualStartOffset = editor.CaretOffset; statusMessage = statusMessage }
                          setSelection newState editor command start finish
                          match mode, editor.SelectionMode with
                          | VisualBlockMode, SelectionMode.Normal -> dispatchCommand TextEditorCommands.ToggleBlockSelectionMode
                          | _, SelectionMode.Block -> dispatchCommand TextEditorCommands.ToggleBlockSelectionMode
                          | _ -> ()
                          newState
                      | InsertMode ->
  
negative.code:                         setCaretMode vimState Block
                          // stupid hack to prevent intellisense in normal mode
                          // https://github.com/mono/monodevelop/blob/fdbfbe89529bd9076e1906e7b70fdb51a9ae6b99/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Extension/CompletionTextEditorExtension.cs#L153
                          if editor.SelectionMode = SelectionMode.Normal then EditActions.ToggleBlockSelectionMode editor
                          vimState.undoGroup |> Option.iter(fun d -> d.Dispose())
                          let vimState =
                              if vimState.mode = InsertMode then
  