I cannot reproduce your problem but I probably had been having similar
problem that breaks undo but I cannot remember it...  Maybe it disappeared
when something was upgraded.  Now I can use scim (with other trouble related
to undo but it is not serious).  Each versions I am using are scim-1.4.4,
scim-anthy-1.0.0, gtk-2.8.17 and Vim7.

Anyway, it can probably be avoid using OverTheSpot(?) instead of OnTheSpot.
Execute scim-setup and select "FrontEnd->Global Setup" and uncheck "Embed
Preedit String into client window".  (perhaps these are "FrontEnd->XWindow"
and "On The Spot")

(By the way, I couldn't use Input Method on GTK1 GUI.  Preedit is shown but
cannot Commit).



Although this is bad solution, you can use this script to use scim.  I am
using this usually.
http://tokyo.cool.ne.jp/hopper2/scim.vim
http://tokyo.cool.ne.jp/hopper2/vimscim.cpp
This is very experimental code.  This requires scim-1.4 and Vim7.

Installation:
1. compile
 FreeBSD6:
 $ g++ -shared -o vimscim.so -I/usrX11R6/incluce/scim-1.0 \
   -D__STDC_ISO_10646__ vimscim.cpp -L/usr/X11R6/lib -lscim-1.0

 Fedora Core 5: you need to install scim-devel pkg and use libstdc++.so.7.
 $ g++-libstdc++-so_7 -shared -o vimscim.so \
   `pkg-config --cflags --libs scim` -fPIC vimscim.cpp

2. cp scim.vim vimscim.so ~/.vim/keymap

Usage:
Set Language and Input Engine. If omitted, default is used.
 :let g:scim_lang = "ja_JP"
 :let g:scim_engine = "Anthy"
 :set keymap=scim
Other settings are not needed including to run "scim -d" and to set
Environment Variables.



Other way, SKK (Simple Kana to Kanji conversion program) is available for
Japanese inputting.  SKK is a popular Input Method especially in Emacs.
There are two implementations written in pure VimScript.  You can find
details of SKK at http://openlab.jp/skk/ (I don't know it well).

This is written by Anonymouse and hosted by MURAOKA Taro.
http://www.kaoriya.net/testdir/skkvim-20060314.zip

This is written by Yasuhiro Matsumoto.
http://hp.vector.co.jp/authors/VA020411/Vim/scripts/skkim.vim




--- off topic ---
My trouble is:
When using GTK2 GUI and Input Method was used and character conversion was
performed, arrow_used is set to TRUE by im_correct_cursor().  So after
character was committed into input buffer and before input the character
actually, u_sync() is called from may_sync_undo().  And u_sync() makes new
undo because preedit already ended and im_is_preediting() returns FALSE.
This patch may fix it.  But I don't know other influence and this should not
fix your problem.
*** src/edit.c.orig     Thu May 11 20:18:20 2006
--- src/edit.c  Thu May 11 20:18:45 2006
***************
*** 5937,5942 ****
--- 5937,5946 ----
 start_arrow(end_insert_pos)
     pos_T    *end_insert_pos;      /* can be NULL */
 {
+ #if defined(FEAT_XIM) && defined(FEAT_GUI_GTK)
+     if (im_is_preediting())
+       return;
+ #endif
     if (!arrow_used)       /* something has been inserted */
     {
        AppendToRedobuff(ESC_STR);


--
Yukihiro Nakadaira <[EMAIL PROTECTED]>

Reply via email to