anchor.diff:  
           let action =
               match state.mode, keyList with
  -            | VisualBlockMode, [ Escape ] -> [ run Move SelectionStart; run (SwitchMode NormalMode) Nothing ]
  +            | VisualBlockMode, [ Escape ] -> [ run Move SelectionStart; switchMode NormalMode ]
               | _, [ Escape ] -> [ run (SwitchMode NormalMode) Nothing; run Move Left ]
               | NotInsertMode, [ Movement m ] -> [ run Move m ]
  -            | NormalMode, [ "c"; FindChar m; c ] -> [ run Delete (m c); run (SwitchMode InsertMode) Nothing ]
  +            | NormalMode, [ "c"; FindChar m; c ] -> [ run Delete (m c); switchMode InsertMode ]
               | NotInsertMode, [ FindChar m; c ] -> [ run Move (m c) ]
  -            | NormalMode, [ "c"; Movement m ] -> [ run Delete m; run (SwitchMode InsertMode) Nothing ]
  +            | NormalMode, [ "c"; Movement m ] -> [ run Delete m; switchMode InsertMode ]
               | NormalMode, [ Action action; Movement m ] -> [ run action m ]
               | NormalMode, [ "u" ] -> [ run Undo Nothing ]
               | NormalMode, [ "<C-r>" ] -> [ run Redo Nothing ]
               | NormalMode, [ "d"; "d" ] -> [ run Delete WholeLineIncludingDelimiter ]
  -            | NormalMode, [ "c"; "c" ] -> [ run Delete WholeLine; run (SwitchMode InsertMode) Nothing ]
  +            | NormalMode, [ "c"; "c" ] -> [ run Delete WholeLine; switchMode InsertMode ]
               | NormalMode, [ "y"; "y" ] -> [ run Yank WholeLineIncludingDelimiter ]
  -            | NormalMode, [ "C" ] -> [ run Delete EndOfLine; run (SwitchMode InsertMode) Nothing ]
  +            | NormalMode, [ "C" ] -> [ run Delete EndOfLine; switchMode InsertMode ]
               | NormalMode, [ "D" ] -> [ run Delete EndOfLine ]
               | NormalMode, [ "x" ] -> [ run Delete CurrentLocation; run Move EnsureCursorBeforeDelimiter ]
               | NormalMode, [ "p" ] -> [ run (Put After) Nothing ]
  
positive.code:             | _ -> 1, keyList
  
          let run = getCommand multiplier
          LoggingService.LogDebug (sprintf "%A %A" state.mode keyList)
          let newState =
              match keyList with
  
negative.code:             | NormalMode, [ Action action; FindChar m; c ] -> [ run action (m c) ]
              | NormalMode, [ Action action; "i"; BlockDelimiter c ] -> [ run action (InnerBlock c) ]
              | NormalMode, [ Action action; "a"; BlockDelimiter c ] -> [ run action (ABlock c) ]
              | NormalMode, [ ModeChange mode ] -> [ switchMode mode ]
              | NormalMode, [ "a" ] -> [ run Move RightIncludingDelimiter; switchMode InsertMode ]
              | NormalMode, [ "A" ] -> [ run Move EndOfLine; switchMode InsertMode ]
              | NormalMode, [ "O" ] -> [ run (InsertLine After) Nothing; switchMode InsertMode ]
              | NormalMode, [ "o" ] -> [ run (InsertLine Before) Nothing; switchMode InsertMode ]
              | NormalMode, [ Action _ ] -> wait
              | NormalMode, [ Action _; "i" ] -> wait
              | NormalMode, [ Action _; "a" ] -> wait
  