Tab completion and UTF-8

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Tab completion and UTF-8

Bertram Scharpf
Hi,

as already remarked in Tip #102, the provided versions do
not handle UTF-8 characters correctly. As it is not possible
to add a tip note currently, I post my new version here.

  function InsertMatch( direction)
    if match(getline( '.'),'\k\%'.virtcol('.').'v') >= 0
      let dir = a:direction
    else
      let dir = 0
    end
    if     dir < 0
      return "\<c-p>"
    elseif dir > 0
      return "\<c-n>"
    else
      return "\<tab>"
    endif
  endfunction

  inoremap <tab>   <c-r>=InsertMatch( -1)<cr>
  inoremap <s-tab> <c-r>=InsertMatch( +1)<cr>

Bertram


--
Bertram Scharpf
Stuttgart, Deutschland/Germany
http://www.bertram-scharpf.de