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 Commands

Mateusz KowalczykMateusz Kowalczyk38 downloads

Map any Obsidian command to Vim-style multi-key sequences that work everywhere, not only in the editor.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates3

Bring Vim-style command mappings to all of Obsidian:

  • Map multi-key sequences, leaders, and modified keys to any Obsidian command.
  • Use mappings across tabs, sidebars, and other app views, not only the editor.
  • Keep mappings in a vault-local, vimrc-style config file.

Vim Commands works with core commands and commands added by community plugins (everything you can find in command palette).

It stays out of text fields and Vim insert mode.

This plugin extends Obsidian's built-in Vim mode; it does not replace it. Enable Obsidian's Vim key bindings to get standard Vim editing and use these command mappings inside the Markdown editor.

Usage

  1. Enable Settings → Editor → Vim key bindings.
  2. Install and enable Vim Commands.
  3. Create .vimrc in the root of your vault. You can start from the LazyVim-inspired config.
  4. Add mappings using this form (examples below):
nmap <keys> :obcommand <command-id><CR>
  1. Reload the plugin after editing the file.

Change the file path under Settings → Vim Commands → Config file path if you keep these mappings elsewhere. The path must be inside the vault.

Only nmap ... :obcommand ...<CR> and let mapleader = "..." are handled; unrelated vimrc lines are ignored. The default <Leader> key is <Space>.

If a key combination conflicts with an Obsidian hotkey, unassign that hotkey under Settings → Hotkeys first.

To inspect available command IDs, open the developer console (View → Toggle developer tools or Ctrl+Shift+I / Cmd+Option+I) and run:

Object.entries(app.commands.commands).map(([id, command]) => [id, command.name]);

Mini Vimrc

Mini Vimrc complements this plugin well: Mini Vimrc configures editor behavior such as inoremap jk <Esc> and motion remaps, while Vim Commands invokes Obsidian commands throughout the app.

Mapping examples

let mapleader = ","

" Open the command palette and search
nmap <Leader>: :obcommand command-palette:open<CR>
nmap <Leader>/ :obcommand global-search:open<CR>

" Open the quick switcher
nmap <Leader><Space> :obcommand switcher:open<CR>

" Move between tabs
nmap H :obcommand workspace:previous-tab<CR>
nmap L :obcommand workspace:next-tab<CR>

" Commands from community plugins work too
nmap <Leader>gg :obcommand obsidian-git:open-git-view<CR>

LazyVim-inspired config

The examples/lazy.vimrc file is a ready-to-adapt, LazyVim-inspired starter based on LazyVim key mappings. Copy it to <vault>/.vimrc, trim what you don't need, and reload the plugin. Obsidian-specific commands are grouped under <Leader>o*.

HealthExcellent
ReviewPassed
About
Map Vim-style key sequences directly to any Obsidian command, including commands from community plugins. Vim Commands supports multi-key mappings, leaders, and modified keys across tabs, sidebars, and other app views, not only the editor. Mappings live in a vault-local vimrc file. The plugin extends rather than replaces Obsidian's native Vim editing.
VimCommandsHotkeys
Details
Current version
1.0.2
Last updated
2 weeks ago
Created
4 weeks ago
Updates
3 releases
Downloads
38
Compatible with
Obsidian 1.12.0+
Platforms
Desktop only
License
MIT
Report bugRequest featureReport plugin
Author
Mateusz KowalczykMateusz Kowalczykmateuszkowalczyk
GitHubmateuszkowalczyk
  1. Community
  2. Plugins
  3. Vim
  4. Vim Commands

Related plugins

Tab Switcher

Switch your tabs with Ctrl + Tab in recently used order like in a browser.

Hotkey Helper

Easily see and access any plugin's settings or hotkey assignments (and conflicts) from the Community Plugins tab.

Tray

Run Obsidian from the system tray for customisable window management and global quick notes.

Keyshots

Add classic hotkey/shortcuts commands from popular IDEs like Visual Studio Code or JetBrains Family.

Leader Hotkeys

Add leader hotkey support to any command (like tmux or vim).

Vimrc Support

Auto-load a startup file with Vim commands.

Code Editor Shortcuts

Add keyboard shortcuts (hotkeys) commonly found in code editors such as Visual Studio Code (VS Code) or Sublime Text.

Doubleshift

Open the command palette by pressing Shift (or any other key) twice like in IntelliJ and create your own shortcuts.

Callout Toggles

Instantly add, switch, or remove callouts in your notes. Provides a separate command for every callout type.

Tab Selector

Quickly switch tabs in various ways.