anchor.diff:      | Redo
       | JoinLines
       | InsertLine of BeforeOrAfter
  +    | ReplaceChar of string
       | ResetKeys
       | NextTab
       | PreviousTab
  
positive.code: 
      let (|Escape|_|) character =
          match character with
          | "<esc>" -> Some Escape
          | "<C-c>" -> Some Escape
          | "<C-[>" -> Some Escape
          | _ -> None
  
      let (|Keys|_|) (keys:string) =
  
negative.code:             | Undo -> MiscActions.Undo editor
              | Redo -> MiscActions.Redo editor
              | JoinLines -> Vi.ViActions.Join editor
              | ReplaceChar c ->
                  editor.SetSelection(editor.Caret.Offset, editor.Caret.Offset+1)
                  editor.DeleteSelectedText true
                  editor.InsertAtCaret c
                  CaretMoveActions.Left editor
              | InsertLine Before -> MiscActions.InsertNewLineAtEnd editor
              | InsertLine After -> editor.Caret.Column <- 1; MiscActions.InsertNewLine editor; CaretMoveActions.Up editor
              | GoToDeclaration -> dispatch "MonoDevelop.Refactoring.RefactoryCommands.GotoDeclaration"
  