Skip to content

Commit ae3a866

Browse files
mao-yiningchrisbra
authored andcommitted
runtime(doc): Add explanation for Vim's IME
related: #10513 Signed-off-by: Mao-Yining <[email protected]> Signed-off-by: Christian Brabandt <[email protected]>
1 parent bfcf638 commit ae3a866

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

runtime/doc/mbyte.txt

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
*mbyte.txt* For Vim version 9.1. Last change: 2025 Aug 10
1+
*mbyte.txt* For Vim version 9.1. Last change: 2025 Oct 04
22

33

44
VIM REFERENCE MANUAL by Bram Moolenaar et al.
@@ -971,6 +971,36 @@ of Windows you use. For example, on my Windows 2000 box:
971971
The default is still English (United Stated)
972972

973973

974+
MS-Windows IME Compatibility *multibyte-ime-compatibility*
975+
976+
Vim manages input methods on Windows systems via the `imm32.dll` (Input Method
977+
Manager). The implementation, dating back to the Windows 2000 era, may not be
978+
fully compatible with modern input methods. Modern input method processing
979+
has shifted to the Text Services Framework (TSF), whose behavior may not fully
980+
align with the traditional IME interface. For details about IME and TSF,
981+
refer to the Microsoft documentation website (link is omitted since MS
982+
documentation URLs often change).
983+
984+
In some cases Vim might incorrectly enable the Input Method (IM) in Normal
985+
mode upon startup when the Windows display language is set to a CJK language.
986+
To work around this issue, try adding the following configuration to your
987+
|gvimrc| file: >
988+
989+
autocmd VimEnter * set imdisable | set noimdisable
990+
<
991+
If you make any progress in diagnosing or resolving these issues, feedback is
992+
welcome.
993+
994+
Note: IME behavior can vary due to differences in implementations by different
995+
vendors. If you encounter issues with a specific input method, it is
996+
recommended to test with an alternative one.
997+
998+
For proper integration with Vim's |+multi_byte_ime| system, changes in the
999+
input method's status must be detectable by the `ImmGetOpenStatus()` function
1000+
in Vims source code. Currently, some input methods that support multi-language
1001+
input may have internal state changes that gVim cannot capture.
1002+
1003+
9741004
Cursor color when IME or XIM is on *CursorIM*
9751005
There is a little cute feature for IME. Cursor can indicate status of IME
9761006
by changing its color. Usually status of IME was indicated by little icon

runtime/doc/tags

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9097,6 +9097,7 @@ multi-lang mlang.txt /*multi-lang*
90979097
multi-repeat repeat.txt /*multi-repeat*
90989098
multibyte mbyte.txt /*multibyte*
90999099
multibyte-ime mbyte.txt /*multibyte-ime*
9100+
multibyte-ime-compatibility mbyte.txt /*multibyte-ime-compatibility*
91009101
multibyte-input mbyte.txt /*multibyte-input*
91019102
multilang mlang.txt /*multilang*
91029103
multilang-menus mlang.txt /*multilang-menus*

0 commit comments

Comments
 (0)