docs: def is_in(self, w, mapping):
          r"""
          It's kind of difficult to decide if something might be a keyword
          in VimL because it allows you to abbreviate them.  In fact,
          'ab[breviate]' is a good example.  :ab, :abbre, or :abbreviate are
          valid ways to call it so rather than making really awful regexps
          like::
  
              \bab(?:b(?:r(?:e(?:v(?:i(?:a(?:t(?:e)?)?)?)?)?)?)?)?\b
  
          we match `\b\w+\b` and then call is_in() on those tokens.  See
          `scripts/get_vimkw.py` for how the lists are extracted.
          """
          p = bisect(mapping, (w,))
          if p > 0:
              if mapping[p-1][0] == w[:len(mapping[p-1][0])] and \
                 mapping[p-1][1][:len(w)] == w:
                  return True
          if p < len(mapping):
              return mapping[p][0] == w[:len(mapping[p][0])] and \
                  mapping[p][1][:len(w)] == w
          return False