Automatically switch input methods based on Neovim's edit mode for macOS, Windows, and Linux.
im-select.nvim is a Neovim plugin that automatically switches your system's input method based on whether you're in insert mode or normal mode. It solves the problem of manually changing keyboards when editing text in different languages, ensuring you always have the correct input method active. The plugin supports macOS, Windows/WSL, and Linux using platform-specific CLI tools.
Neovim users who work with multiple languages or input methods and want to automate keyboard switching between edit modes. Particularly useful for developers writing code in English while inserting text in CJK or other non-Latin scripts.
Developers choose im-select.nvim because it's a pure Lua implementation that works reliably across platforms, unlike older Vim plugins. It offers configurable event triggers and async operation, making input method switching seamless without disrupting the editing experience.
Switch Input Method automatically depends on Neovim's edit mode
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Built entirely in Lua for Neovim, it avoids the quirks and compatibility issues of older Vim plugins, as highlighted in the README's philosophy.
Supports macOS, Windows/WSL, and Linux with specific CLI tools like macism and im-select.exe, with detailed installation guides for each platform.
Allows customization of Neovim events that trigger IM switching, such as InsertEnter and InsertLeave, through the set_default_events and set_previous_events options.
Offers an async_switch_im option to run input method switching in the background, preventing editor blocking and improving responsiveness.
Requires manual installation and PATH configuration of platform-specific executables like macism or im-select.exe, adding setup complexity and potential failure points.
Only supports Fcitx, Fcitx5, and IBus on Linux, excluding other input methods unless community-contributed, as noted in the README.
Some events like VimEnter and FocusGained were removed due to issues, forcing users to manually add them if needed, which can lead to inconsistent behavior.