anchor.diff:              | _ -> None, keyList
   
           let run = getCommand multiplier
  +        LoggingService.LogDebug (sprintf "%A %A" state.mode keyList)
           let action =
               match state.mode, keyList with
               | InsertMode, [ "<esc>" ] -> [ run (SwitchMode NormalMode) Nothing ]
  
positive.code:         let editorData = x.Editor.GetContent<ITextEditorDataProvider>().GetTextEditorData()
          editorData.Caret.Mode <- CaretMode.Block
  
      override x.KeyPress(descriptor:KeyDescriptor) =
          let editorData = x.Editor.GetContent<ITextEditorDataProvider>().GetTextEditorData()
          let state, handledKeyPress = handleKeyPress vimState descriptor editorData
          vimState <- state
          match handledKeyPress with
          | true -> false
          | false -> base.KeyPress descriptor
  
negative.code:             | _ -> []
          multiplier, action
  
      let handleKeyPress state (keyPress:KeyDescriptor) editorData =
          let newKeys =
              match state.mode, keyPress.KeyChar with
              | NormalMode, c when keyPress.KeyChar <> '\000' -> state.keys @ [c |> string]
              | InsertMode, c when keyPress.KeyChar = '\000' ->
                  match keyPress.SpecialKey with
                  | SpecialKey.Escape -> state.keys @ ["<esc>"]
                  | _ -> state.keys
              | _ -> state.keys
          let newState = { state with keys=newKeys }
          let multiplier, action = parseKeys newState
          LoggingService.LogDebug (sprintf "%A %A" multiplier action)
          match multiplier, action with
          | _, actions ->
              let rec performActions actions' state handled =
                  match actions' with
                  | [] -> state, handled
                  | h::t ->
  
                      if h.commandType <> DoNothing then
                          let newState = runCommand state editorData h
                          performActions t { newState with keys = [] } true
  