noname keymap
A Vim-inspired modal keymap for VS Code. Your keyboard switches between four modes — NORMAL, INSERT,
JUMP and NAVIGATION — so ordinary letter keys move, edit, jump and drive the workbench without
reaching for modifiers.
The four modes
- NORMAL — the default mode for moving and editing. Letter keys move the cursor (
a/d/w/s
as well as h/j/k/l), with Alt variants for word-boundary moves and multi-line hops, plus
half-page jumps, selection, copy/paste, delete, indent, line insertion and multi-cursor, all on
unmodified keys.
- INSERT — plain typing. It is entered with
i or a double-tap of Alt, and left with Escape,
Alt Alt or Alt+i. Alt-prefixed keys stay available so you can delete a word, copy, undo, open
a new line or move by boundary and drop straight back into NORMAL in one stroke. Context-aware
symbol insertion puts the right spacing around =, :, ; and , for you.
- JUMP — a transient mode for moving somewhere far in one motion.
t labels visible words so you
can type the label to land on one, g jumps to a relative line number, and f searches text and
cycles candidates with Tab or the arrow keys. Enter confirms, Escape restores your original
position.
- NAVIGATION — the workbench, entered with
m. Focus or move editor groups, split, close and
reopen editors, switch to the Explorer, Search, Git, Extensions or Terminal views, toggle the
sidebar and editor width, and focus groups 1–4 by number.
The active mode is shown in the status bar and changes the cursor shape, and Shift+Escape always
returns to NORMAL from anywhere.
Other behavior
- Cursor-following scroll. The view scrolls only when the cursor leaves a center dead zone, and
recenters immediately on a large jump, so ordinary movement does not make the screen jitter.
- Automatic sidebar. The sidebar opens or closes depending on how many editor groups are open.
- Script runner. Pick a
package.json script from a quick pick and run it in the terminal.
Usage
The extension activates on startup and begins in NORMAL mode. Enter text with i, return with
Escape. Every binding is contributed by the extension itself — open the extension's page in VS Code
and see the Feature Contributions tab for the complete list of commands and keybindings, which is
far longer than a README can usefully reproduce.
Settings
| Setting | Default | Purpose |
| --- | --- | --- |
| nonameKeymap.moveRight.specialCharacters | 、 。 , . : ; ( { [ = " ' \`` | Characters the rightward special-character move stops at. | | nonameKeymap.moveLeft.specialCharacters|、 。 , . : ; ) } ] = " ' `` | Characters the leftward special-character move stops at. |
| nonameKeymap.cursorCenter.enabled | true | Enable cursor-following scroll. |
| nonameKeymap.cursorCenter.deadZoneRatio | 0.25 | Share of the viewport treated as top/bottom margin; 0 keeps the cursor always centered. |
| nonameKeymap.cursorCenter.largeJumpRatio | 0.3 | Cursor moves larger than this share of the viewport are centered immediately. |
| nonameKeymap.autoSidebar.enabled | true | Enable automatic sidebar open/close. |
| nonameKeymap.intelliSymbol.enabled | true | Enable context-aware symbol insertion. |
| nonameKeymap.intelliSymbol.number_enabled | true | Enable context-aware number insertion. |
Requirements
VS Code 1.96.0 or later. The keymap overrides a large number of default bindings, so expect to use it
as your primary keymap rather than alongside another one.
| |