anchor.diff:          | '_' -> Some FirstNonWhitespace
           | _ -> None
   
  +    let (|FindChar|_|) character =
  +        match character with
  +        | 'f' -> Some ToCharInclusive
  +        | 'F' -> Some FindCharBackwards
  +        | 't' -> Some ToCharExclusive
  +        //| 'T' -> Some Right
  +        | _ -> None
  +
       let (|Action|_|) character =
           match character with
           | 'd' -> Some Delete
           | 'c' -> Some Change
           | 'v' -> Some Visual
  +        //| 'v' -> Some FindForwards
           | _ -> None
   
       let keys = ResizeArray<_>()
  -    let mutable textEditorData = null
  +    let mutable textEditorData = Unchecked.defaultof<TextEditorData>
       let getCommand (repeat: int option) commandType textObject =
           Some { repeat=(match repeat with | Some r -> r | None -> 1); commandType=commandType; textObject=textObject }
   
  
positive.code:         | StartOfLine -> editor.Caret.Offset, line.Offset
          | FirstNonWhitespace -> editor.Caret.Offset, line.Offset + editor.GetLineIndent(editor.Caret.Line).Length
          | WholeLine -> line.Offset, line.EndOffset
          | ToCharInclusive c ->
              match findCharForwardsOnLine editor line c with
              | Some index -> editor.Caret.Offset, index+1
              | None -> editor.Caret.Offset, editor.Caret.Offset
          | ToCharExclusive c ->
              match findCharForwardsOnLine editor line c with
  
negative.code:         let action =
              match keyList with
              | [ Movement m ] -> run Move m
              | [ FindChar m; c ] -> run Move (m c)
              | [ Action action; Movement m ] -> run action m
              | [ Action action; 'd' ] -> run action WholeLine
              | [ Action action; FindChar m; c ] -> run action (m c)
              | [ Action action; 'i'; BlockDelimiter c ] -> run action (InnerBlock c)
              | [ Action action; 'a'; BlockDelimiter c ] -> run action (ABlock c)
              | [ Action action ]  -> wait
              | [ Action action; _ ] -> wait
              | [ FindChar m ] -> wait
              | ['g'; 'd'] -> wait
              | _ -> None
  
          match multiplier, action with
  