anchor.diff:          let action =
               match keyList with
               | [ Movement m ] -> getCommand multiplier Move m
  +            | [ Action action; Movement m ] -> getCommand multiplier action m
               | [ Action action; 'd' ] -> getCommand multiplier action WholeLine
  -            | [ Action action; 't'; c ] -> getCommand multiplier action (ToCharInclusive c)
  -            | [ Action action; 'f'; c ] -> getCommand multiplier action (ToCharExclusive c)
  +            | [ Action action; 't'; c ] -> getCommand multiplier action (ToCharExclusive c)
  +            | [ Action action; 'f'; c ] -> getCommand multiplier action (ToCharInclusive c)
  +            | [ Action action ] -> wait
  +            | [ Action action; _ ] -> wait
               | _ -> None
   
           match multiplier, action with
           | _, Some action' ->
  -            MonoDevelop.Core.LoggingService.LogDebug (sprintf "%A" action')
  -            x.RunCommand action'
  -            keys.Clear()
  +            MonoDevelop.Core.LoggingService.LogDebug (sprintf "%A %A" keys action')
  +            if action'.commandType <> DoNothing then
  +                x.RunCommand action'
  +                keys.Clear()
               false
           | None, None -> base.KeyPress descriptor
           | _, _ -> false
  
positive.code:     | ForwardToEndOfWORD
      | BackwardToEndOfWord
      | BackwardToEndOfWORD
  
  type VimAction = {
      repeat: int
  
negative.code: }
  
  module VimHelpers =
      let findCharForwardsOnLine (editor:TextEditorData) (line:DocumentLine) character =
          seq { editor.Caret.Offset..line.EndOffset }
          |> Seq.tryFind(fun index -> editor.Text.[index] = character)
  
      let getRange (editor:TextEditorData) motion =
          let line = editor.GetLine editor.Caret.Line
          match motion with
          | Right -> 
              let line = editor.GetLine editor.Caret.Line
  