Getting Emacs keybindings working properly in VS Code used to mean installing several extensions that overlapped, conflicted, and accumulated supply-chain risk independently. Emacs Unified consolidates them into one package.
What it is
It’s a fork of vscode-emacs-mcx (Awesome Emacs Keymap) by Yuichiro Tsuchiya, which is the best Emacs keybinding implementation for VS Code. I forked it to absorb related extensions, add missing commands, and cut the dependency surface down to zero runtime npm packages.
The extensions that are now part of the package:
- vscode-dired — rewritten with async I/O, available via
C-x d - vscode-emacs-tab, vscode-emacs-indent, vscode-emacs-delete-horizontal-space, vscode-json-pretty-printer — dropped, upstream or VS Code built-ins cover all of these
What’s new beyond upstream
M-; comment-dwim — a faithful implementation with five context-dependent behaviors: toggle comment on a region, insert a comment on a blank line at code indentation, append a comment to a code line, move into an existing comment, or realign a comment-only line. Block comment syntax for 40+ languages built in, user-extensible via settings.
M-g n / M-g p unified next-error — checks diagnostics first, falls back to search results, just like Emacs navigates whatever error source is active.
Sexp operations via paredit-ts — structural editing with C-M-f, C-M-b, C-M-k, and friends.
Additional bindings — C-M-u (backward-up-list), C-M-d (down-list), C-x C-b (list buffers MRU).
Compatibility
Emacs Unified retains the emacs-mcx configuration namespace. Existing emacs-mcx.* settings carry over without changes. The extension cannot be installed alongside Awesome Emacs Keymap — they share command IDs. Uninstall one before installing the other.
Works as both a desktop extension and a web extension.
Install
Search “Emacs Unified” in the VS Code Extensions panel, or:
code --install-extension kshartman.emacs-unified
Also available on Open VSX for VS Code-compatible editors.
The code is on GitHub: kshartman/vscode-emacs-unified.