anchor.diff:  type VimState = {
       keys: string list
       mode: VimMode
  -    desiredColumn: int // If we move up/down, which column did we start at?
  +    visualStartOffset: int
       findCharCommand: VimAction option
       lastAction: VimAction list // used by . command to repeat the last action
   }
  
positive.code:     | HalfPageUp
      | HalfPageDown
      | CurrentLocation
  
  type VimAction = {
      repeat: int
  
negative.code:             | VisualMode -> 
                  textEditorData.Caret.Mode <- CaretMode.Block
                  textEditorData.Caret.PreserveSelection <- true
                  { vimState with mode = mode; visualStartOffset = textEditorData.Caret.Offset }
              | InsertMode ->
                  textEditorData.Caret.Mode <- CaretMode.Insert
                  textEditorData.Caret.PreserveSelection <- false
  