Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Vim IM Control

hideakitaihideakitai4k downloads

Switch input method when `InsertLeave` and `InsertEnter`. Supports macOS, Windows, and Linux.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates5

Control Input Method (IM) when InsertLeave and InsertEnter in Vim mode. Supports macOS, Windows, and Linux.

Usage

You can set the following four settings for each platform. If you want to use the InsertEnter command, you should also set the Get Current IM command to restore the state of IM. If you leave blank either of them, InsertEnter will be skipped.

The default settings are defined as below. For the defaults, im-select is used for macOS and Windows, and fcitx5-remote for Linux. But you can use any IM controller as you want.

Note: Please restart Obsidian after installing this plugin.

macOS

PATH to IM Controller: "/opt/homebrew/bin",
On InsertLeave: "im-select com.apple.keylayout.ABC",
On InsertEnter: "im-select {{im}}",
Get Current IM: "im-select",

Windows

PATH to IM Controller: "%USERPROFILE%\\AppData\\Local\\bin",
On InsertLeave: "im-select.exe 1033",
On InsertEnter: "im-select.exe {{im}}",
Get Current IM: "im-select.exe",

Linux

fcitx5-remote (default)

PATH to IM Controller: "/usr/bin",
On InsertLeave: "fcitx5-remote -c",
On InsertEnter: "fcitx5-remote -o",
Get Current IM: "fcitx5-remote",

fcitx-remote

PATH to IM Controller: "/usr/bin/fcitx-remote"
On InsertLeave: "fcitx-remote -c"
On InsertEnter: "fcitx-remote -o"
Get Current IM: "fcitx-remote"

ibus

PATH to IM Controller: "/usr/bin/ibus"
On InsertLeave: "ibus engine xkb:us::eng"
On InsertEnter: "ibus engine {{im}}"
Get Current IM: "ibus engine"

Other Configuration

Async Switch

Whether to switch IM asynchronously or not. Default: true

Status Bar Message

Whether to show ERROR/WARN messages on Status Bar. Default: false

Limitaion

For Linux, this plugin does NOT support Obsidian installed from Snap or Flatpak. Please try AppImage or deb file.

Related Plugins

  • Obsidian Vimrc Support Plugin
  • Obsidian Vim IM Select Plugin
  • Obsidian Vim IM Switch Plugin

LICENSE

MIT

HealthGood
ReviewSatisfactory
About
Switch input method automatically when entering and leaving Vim insert mode, restoring the previous IM on return. Support macOS, Windows, and Linux with common controllers (im-select, fcitx5-remote, fcitx-remote, ibus) and custom commands; Linux Snap/Flatpak installs are not supported.
VimAutomation
Details
Current version
0.2.0
Last updated
4 months ago
Created
3 years ago
Updates
5 releases
Downloads
4k
Compatible with
Obsidian 0.15.3+
Platforms
Desktop only
License
MIT
Report bugRequest featureReport plugin
Author
hideakitaihideakitai
github.com/hideakitai
GitHubhideakitai
  1. Community
  2. Plugins
  3. Vim
  4. Vim IM Control

Related plugins

BRAT

Easily install a beta version of a plugin for testing.

Homepage

Open a note, base, or workspace on startup, or set it for quick access later.

Advanced URI

Control everything with URI.

Lazy Loader

Load plugins with a delay on startup, so that you can get your app startup down into the sub-second loading time.

Hot Reload

Automatically reload in-development plugins when their files are changed

Templater

Create and use dynamic templates.

QuickAdd

Quickly add new notes or content to your vault.

Readwise Official

Sync highlights from Readwise to your vault.

Update modified date

Automatically update a frontmatter modified date field when the file is modified.

Creases

Tools for effectively folding Markdown sections.