今のim_customのように大きな変更を施しそれを発展させるならば、vim用の日本語入 力規格・インターフェースをちゃんと作ってやるのが正解だと思います。可能な限り 総てのプラットホームで動くようにです。そうではなくてdo it like vimならば、 i_CTRL-X補完を拡張する方法が考えられます。補完時に内部的にスクリプトを呼び出 せるようにして('indentexpr'のように)、スクリプトが補完候補を返せるようにする のです。スクリプトからlibcall()を使ってプラグインを呼び出すことができるの で、理論上はその枠組みで幾らでも入力を拡張できるようになります。
Program received signal SIGSEGV, Segmentation fault. 0x28480d6c in XGetICValues () from /usr/X11R6/lib/libX11.so.6 (gdb) bt #0 0x28480d6c in XGetICValues () from /usr/X11R6/lib/libX11.so.6 #1 0x282aa217 in gdk_ic_get_events () from /usr/X11R6/lib/libgdk12.so.2 #2 0x80d1d4a in xim_init () at mbyte.c:3932 #3 0x80d122f in im_set_active (active=0) at mbyte.c:2865 #4 0x8074a5d in ins_esc (count=0xbfbff8dc, cmdchar=105) at edit.c:5726 #5 0x806ed0d in edit (cmdchar=105, startln=0, count=-1) at edit.c:807 #6 0x80daebd in nv_edit (cap=0xbfbff958) at normal.c:7678 #7 0x80d2b40 in normal_cmd (oap=0xbfbff9c0, toplevel=1) at normal.c:1036 #8 0x80b09c3 in main_loop (cmdwin=0) at main.c:2010 #9 0x80b0736 in main (argc=0, argv=0xbfbffb54) at main.c:1861
Gdk-WARNING **: can not create input context with specified input style. Vim: Caught deadly signal SEGV Vim: preserving files... Vim: Finished.