anchor.diff:              match findCharRange editor startChar endChar with
               | Some start, Some finish when finish < editor.Text.Length -> start, finish+1
               | _, _ -> editor.Caret.Offset, editor.Caret.Offset
  +        | WordForwards -> editor.Caret.Offset, editor.FindNextWordOffset (editor.Caret.Offset) + 1
  +        | WordBackwards -> editor.Caret.Offset, editor.FindPrevWordOffset editor.Caret.Offset
  +        | ForwardToEndOfWord ->
  +            let endOfWord = editor.FindCurrentWordEnd (editor.Caret.Offset+1) - 1
  +            let endOfWord = 
  +                if editor.Text.[endOfWord] = ' ' then editor.FindCurrentWordEnd (endOfWord+1) - 1 else endOfWord
  +            editor.Caret.Offset, endOfWord
  +        | BackwardToEndOfWord -> editor.Caret.Offset, editor.FindPrevWordOffset editor.Caret.Offset |> editor.FindCurrentWordEnd
           | _ -> 0,0
   
   type XSVim() =
  
positive.code:                     state.keys @ ["<esc>"]
                  | _ -> state.keys
              | _ -> state.keys
          
          let multiplier, action = parseKeys { state with keys=newKeys }
          match multiplier, action with
          | _, Some action' when action'.commandType <> DoNothing->
              LoggingService.LogDebug (sprintf "%A %A" newKeys action')
              let newState = runCommand state editorData action'
              newState, true
          | None, None ->
              state, false
          | _, _ -> 
              state, false
  
  
      // TODO: how can I make this not mutable??
      let mutable vimState = { keys=[]; mode=NormalMode; desiredColumn=0; findChar=None }
  
      override x.Initialize() =
  
negative.code:         | "^" -> Some StartOfLine
          | "0" -> Some StartOfLine
          | "_" -> Some FirstNonWhitespace
          | "w" -> Some WordForwards
          | "b" -> Some WordBackwards
          | "e" -> Some ForwardToEndOfWord
          | "E" -> Some BackwardToEndOfWord
          | _ -> None
  
      let (|FindChar|_|) character =
  