anchor.diff:  
   module VimHelpers =
       let findCharForwardsOnLine (editor:TextEditorData) (line:DocumentLine) character =
  -        seq { editor.Caret.Offset .. line.EndOffset }
  +        seq { editor.Caret.Offset+1 .. line.EndOffset }
  +        |> Seq.tryFind(fun index -> editor.Text.[index] = character)
  +
  +    let findCharBackwardsOnLine (editor:TextEditorData) (line:DocumentLine) character =
  +        seq { editor.Caret.Offset-1 .. -1 .. line.Offset }
           |> Seq.tryFind(fun index -> editor.Text.[index] = character)
   
       let findCharForwards (editor:TextEditorData) character =
  -        seq { editor.Caret.Offset .. editor.Text.Length }
  +        seq { editor.Caret.Offset+1 .. editor.Text.Length }
           |> Seq.tryFind(fun index -> editor.Text.[index] = character)
   
       let findCharBackwards (editor:TextEditorData) character =
  
positive.code:             | _, _ -> editor.Caret.Offset, editor.Caret.Offset
          | ABlock (startChar, endChar) ->
              match findCharRange editor startChar endChar with
              | Some start, Some finish -> start, finish+1
              | _, _ -> editor.Caret.Offset, editor.Caret.Offset
          | _ -> 0,0
  
  
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
  