Tony Mechelynck wrote: > >It all depends on what exactly you want to do. (I haven't read the Align.vim >docs.) The length of a UTF-8 string can be counted in several nonequivalent >ways: > >- number of bytes (Latin a + combining circumflex is three bytes): > strlen(string) > >- number of codepoints (Latin a + combining circumflex is two codepoints): > strlen(substitute(string, '.', 'x', 'g')) > >- number of spacing codepoints (Latin a + combining circumflex is one spacing >codepoint; a hard tab is one; wide and narrow CJK are one each; etc.): >(untested) > strlen(substitute(string, '.\Z', 'x', 'g')) > >- virtual length (counting, for instance, tabs as anything between 1 and >'tabstop', wide CJK as 2 rather than 1, Arabic alif as zero when immediately >preceded by lam, one otherwise, etc.): I guess something like what you're >doing above will be necessary because of the wide range of things that can >happen. > >The first two above are documented at ":help strlen()", the third (in >addition) at ":help patterns-composing". > > Thank you, Tony, for that explanation! I've modified Align so that the method used is selectable by the user. Align v33d available at my website (http://mysite.verizon.net/astronaut/vim/index.html#ALIGN) with these changes.
Regards, Chip Campbell --~--~---------~--~----~------------~-------~--~----~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~----------~----~----~----~------~----~------~--~---