Loading ...
Sorry, an error occurred while loading the content.

IM turns off after preedit Japanese text

Expand Messages
  • Takuhiro Nishioka
    Hi, I m using Vim 7.1 (patched 1-229) with SCIM 1.4.0 (Anthy) for Japanese inputting. After I preedit Japanese text, iminsert automatically turns off, though I
    Message 1 of 3 , Feb 4, 2008
    • 0 Attachment
      Hi,

      I'm using Vim 7.1 (patched 1-229) with SCIM 1.4.0 (Anthy) for Japanese
      inputting.
      After I preedit Japanese text, iminsert automatically turns off,
      though I want to
      continue inputting Japanese.

      I don't understand well, but the following patch fixes the problem.

      Index: mbyte.c
      ===================================================================
      RCS file: /cvsroot/vim/vim7/src/mbyte.c,v
      retrieving revision 1.61
      diff -u -r1.61 mbyte.c
      --- mbyte.c 6 Jan 2008 16:18:39 -0000 1.61
      +++ mbyte.c 5 Feb 2008 04:22:41 -0000
      @@ -3684,7 +3684,9 @@
      preedit_start_col = MAXCOL;
      xim_has_preediting = FALSE;

      +#if 0
      im_is_active = FALSE;
      +#endif
      gui_update_cursor(TRUE, FALSE);
      im_show_info();
      }

      --~--~---------~--~----~------------~-------~--~----~
      You received this message from the "vim_multibyte" maillist.
      For more information, visit http://www.vim.org/maillist.php
      -~----------~----~----~----~------~----~------~--~---
    • Bram Moolenaar
      ... I can t say I understand the details either. The im_is_active flag is supposed to keep track if wetther the input method is active, thus that typed
      Message 2 of 3 , Feb 6, 2008
      • 0 Attachment
        Takuhiro Nishioka wrote:

        > I'm using Vim 7.1 (patched 1-229) with SCIM 1.4.0 (Anthy) for Japanese
        > inputting.
        > After I preedit Japanese text, iminsert automatically turns off,
        > though I want to
        > continue inputting Japanese.
        >
        > I don't understand well, but the following patch fixes the problem.
        >
        > Index: mbyte.c
        > ===================================================================
        > RCS file: /cvsroot/vim/vim7/src/mbyte.c,v
        > retrieving revision 1.61
        > diff -u -r1.61 mbyte.c
        > --- mbyte.c 6 Jan 2008 16:18:39 -0000 1.61
        > +++ mbyte.c 5 Feb 2008 04:22:41 -0000
        > @@ -3684,7 +3684,9 @@
        > preedit_start_col = MAXCOL;
        > xim_has_preediting = FALSE;
        >
        > +#if 0
        > im_is_active = FALSE;
        > +#endif
        > gui_update_cursor(TRUE, FALSE);
        > im_show_info();
        > }

        I can't say I understand the details either. The im_is_active flag is
        supposed to keep track if wetther the input method is active, thus that
        typed characters are used for the input method, not directly inserted
        into the text. Perhaps your input method is different, in that it
        remains active after finishing a character? I wonder why it has worked
        OK for others so far. Another possibility is that im_preedit_start_cb()
        is called for other input methods but not for yours.

        This is with GTK 2, right?

        --
        Contrary to popular belief, it's often your clothing that gets promoted, not
        you.
        (Scott Adams - The Dilbert principle)

        /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
        /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
        \\\ download, build and distribute -- http://www.A-A-P.org ///
        \\\ help me help AIDS victims -- http://ICCF-Holland.org ///

        --~--~---------~--~----~------------~-------~--~----~
        You received this message from the "vim_multibyte" maillist.
        For more information, visit http://www.vim.org/maillist.php
        -~----------~----~----~----~------~----~------~--~---
      • Takuhiro Nishioka
        Hi, Yes, Vim with GTK2 on Fedora Core 6. I don t have the Linux environment here, so I ll check through more in a few days. The following is what I discovered
        Message 3 of 3 , Feb 8, 2008
        • 0 Attachment
          Hi,

          Yes, Vim with GTK2 on Fedora Core 6.

          I don't have the Linux environment here, so I'll check through more in a few
          days.

          The following is what I discovered until now.

          With the patch, Japanese inputting process is like follows

          1. I start Vim
          2. I swith to insert mode
          3. IM on
          4. I start preediting Japanese text (type some key)
          5. preedit_start_cb
          6. I preedit Japanese text
          7. I end preediting Japanese text
          8. preedit_end_cb
          9. Japanese text is inserted to Vim's buffer
          10. I start preediting Japanese text again (type some key)
          11. preedit_start_cb
          12. I preedit Japanese text
          ...

          Without the patch:

          1. I start Vim
          2. I swith to insert mode
          3. IM on
          4. I start preediting Japanese text
          5. preedit_start_cb
          6. I preedit Japanese text
          7. I end preediting Japanese text
          8. preedit_end_cb
          9. IM turns off on Vim (IM can be turned on again using i_CTRL-^)
          9. Japanese text is inserted to Vim's buffer
          10. type some key doesn't invoke preedit_start_cb

          And when I switch back to normal mode, iminsert is reset to 0 (I was set it
          to 2).

          > Takuhiro Nishioka wrote:
          >
          >> I'm using Vim 7.1 (patched 1-229) with SCIM 1.4.0 (Anthy) for Japanese
          >> inputting.
          >> After I preedit Japanese text, iminsert automatically turns off,
          >> though I want to
          >> continue inputting Japanese.
          >>
          >> I don't understand well, but the following patch fixes the problem.
          >>
          >> Index: mbyte.c
          >> ===================================================================
          >> RCS file: /cvsroot/vim/vim7/src/mbyte.c,v
          >> retrieving revision 1.61
          >> diff -u -r1.61 mbyte.c
          >> --- mbyte.c 6 Jan 2008 16:18:39 -0000 1.61
          >> +++ mbyte.c 5 Feb 2008 04:22:41 -0000
          >> @@ -3684,7 +3684,9 @@
          >> preedit_start_col = MAXCOL;
          >> xim_has_preediting = FALSE;
          >>
          >> +#if 0
          >> im_is_active = FALSE;
          >> +#endif
          >> gui_update_cursor(TRUE, FALSE);
          >> im_show_info();
          >> }
          >
          > I can't say I understand the details either. The im_is_active flag is
          > supposed to keep track if wetther the input method is active, thus that
          > typed characters are used for the input method, not directly inserted
          > into the text. Perhaps your input method is different, in that it
          > remains active after finishing a character? I wonder why it has worked
          > OK for others so far. Another possibility is that im_preedit_start_cb()
          > is called for other input methods but not for yours.
          >
          > This is with GTK 2, right?



          --~--~---------~--~----~------------~-------~--~----~
          You received this message from the "vim_multibyte" maillist.
          For more information, visit http://www.vim.org/maillist.php
          -~----------~----~----~----~------~----~------~--~---
        Your message has been successfully submitted and would be delivered to recipients shortly.