Bram Moolenaar wrote:
> I don't understand why the cursor is moved. This appears to happen
> after inserting characters, thus moving cursor to before these inserted
> characters. Hmm, it appears they are later deleted with the Del key.
Cursor is moved just for displaying. And also cursor can be positioned
at middle of preedit string.
Those inserted characters are preedit string. Preedit string is
temporarily inserted to show what is to be inserted (like a Vim's
completion). It can be edited with Input Method until it is committed.
"commit" means inserting edited string. When preedit string is changed,
it is deleted and new preedt string is inserted. When preedit string is
committed, it is deleted and the edited string is inserted really.
> I find it a little bit dangerous to simply return from start_arrow().
> To make this a bit more strict perhaps the call to start_arrow() in
> ins_left() can be skipped when im_is_preediting() returns TRUE?
I agree with you. I think that im_is_preediting() returns TRUE only
when start_arrow() is called from ins_left().
--
Yukihiro Nakadaira -
[hidden email]