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
  • Join the community
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Vim IM Control

hideakitaihideakitai3k 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

78%
HealthExcellent
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
Last month
Created
3 years ago
Updates
5 releases
Downloads
3k
Compatible with
Obsidian 0.15.3+
License
MIT
Report bugRequest featureReport plugin
Author
hideakitaihideakitai
github.com/hideakitai
GitHubhideakitai
  1. Community
  2. Plugins
  3. Vim
  4. Vim IM Control

Related plugins

Templater

Create and use dynamic templates.

BRAT

Easily install a beta version of a plugin for testing.

Creases

Tools for effectively folding Markdown sections.

Linter

Format and style your notes. Linter can be used to format YAML tags, aliases, arrays, and metadata; footnotes; headings; spacing; math blocks; regular Markdown contents like list, italics, and bold styles; and more with the use of custom rule options.

Readwise Official

Sync highlights from Readwise to your vault.

Advanced URI

Control everything with URI.

Waypoint

Easily generate dynamic MOCs in your folder notes using waypoints. Enables folders to show up in the graph view and removes the need for messy tags!

Auto Link Title

Automatically fetches the titles of links from the web.

Task Collector (TC)

Change task status and collect tasks within a document using hotkeys and context menus.

Rollover Daily Todos

Rollover any unchecked checkboxes from your last daily note into today's note.