Для многобайтовых символов также есть :h strcharpart()
Если функция не существует в вашем старом варианте Vim, ее можно эмулировать, например,
function! lh#encoding#strpart(mb_string, p, l)
" call lh#assert#value(lh#encoding#strlen(a:mb_string)).is_ge(a:p+a:l)
return matchstr(a:mb_string, '.\{,'.a:l.'}', 0, a:p+1)
endfunction