On 03/04/10 16:22, Yue Wu wrote:
Hi list,

Don't know if it's a bug or feature, but when in visual mode, if I select just
one multibyte charactor, say "我", getpos("'>")[2] will return a value the
same as getpos("'<")[2], but in fact, a multibyte should occupy multi columns
so it should be a value larger than getpos("'<")[2]'s.


Unless 'virtualedit' is set, getpos() returns values corresponding to the start position of a character. So if only one character was highlighted by the latest Visual selection, '< and '> will be the same, even if that character occupies more than one screen column.

If you set 'virtualedit' to "all", then the cursor can be positioned in the middle of the space occupied by a hard tab, or (presumably) on the 2nd cell of a CJK fullwidth glyph. In that case you'll see a difference in getpos('.')[3] which will be nonzero to tell you you aren't at the start of a character. getpos('.')[2] will still be on the start cell of the character in question IIUC.

I don't think that marks can be set halfway a character anyway, even with 'virtualedit' nonempty. (Or can they?)


Best regards,
Tony.
--
Parts that positively cannot be assembled in improper order will be.

--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

To unsubscribe, reply using "remove me" as the subject.

Raspunde prin e-mail lui