VIM Master is a lightweight in-browser game that teaches core Vim motions and editing commands through short, focused levels. No installs required—just open index.html and start practicing.
- Open
index.htmldirectly in your browser. - Best viewed on desktop for full keyboard support.
- Normal/Insert modes with an on-screen status bar
- Command log showing your keystrokes
- Levels that validate your action outcomes (not just keystrokes)
- Supports:
h j k l,w b e,gg G,0 $,x,dd,dw,yy,p,i,a,o/O,cw,D,r, ex-commands:q,:wq - Numeric counts for motions/operators (e.g.,
3w,2dd,5x,5G) - Undo/redo support (
u,Ctrl+r) - Completion modal with Enter to advance
- Ctrl-[ mapped to Escape (exit insert/replace)
- Vim-style search:
/and?, withn/Nnavigation and match highlighting
- How to Exit (Ex Commands): type
:qor:wqthen Enter - Basic Movement:
h j k l - Word Movement:
w b e - Line Jumps:
gg G - Insert Mode:
a+ typing +Esc - Delete Basics:
dd,dw,x - Yank & Put:
yy,p - Line Bounds:
0,$ - Append & Open Lines:
a,o,O - Change Word:
cw(then type,Esc) - Delete to End & Replace:
D,r - Counts: use
3wto move multiple words - Undo/Redo:
dd, thenu, thenCtrl+r - Search Forward:
/targetthen Enter; usen - Search Backward:
?alphathen Enter; useN - Search Navigation: reach the 3rd occurrence with
n
- Navigation:
hleft,jdown,kup,lright - Words:
wnext,bback,eend - Lines:
0start,$end,ggfirst line,Glast line (ornGto go to line n) - Insert:
iinsert at cursor,aappend after cursor,onew line below,Onew line above - Delete:
xdelete character,dddelete line,dwdelete word,Ddelete to end of line - Change:
cwchange word (deletes word and enters Insert) - Replace:
rthen any printable character (supports symbols like! @ # < > &) - Counts: prefix a number before commands (e.g.,
3w,2dd,5x,5G) - Undo/Redo:
uundo,Ctrl+rredo - Exit Insert mode:
EscorCtrl-[ - Search:
/textforward,?textbackward;nnext,Nprevious
- Empty search query does nothing.
- No matches: status shows
0/0;n/Ndo nothing. - Wrapping:
n/Nwrap around the buffer when reaching the ends.
The Challenge Mode is a fast-paced game designed to test and improve your Vim command recall under time pressure. Users are presented with a series of command tasks to complete as quickly and accurately as possible. Each correctly executed command scores points, while speed and precision determine the final score. This mode offers an engaging way to sharpen your Vim skills by combining rapid-fire challenges with real-time feedback, making learning Vim commands both fun and effective. Try to beat your highest score and see how quickly you can master essential Vim commands!
- Each level defines a target cursor location, target text, or target content layout.
- Validation is resilient to trailing spaces and blank lines where appropriate.
- You progress when the outcome matches the target; keystroke sequences themselves aren’t strictly enforced.
- No build step. Just clone and open the file:
# Clone your fork
git clone https://github.com/<your-username>/vimmaster.git
cd vimmaster
# Open directly in a browser (double-click on Windows)
start index.html # Windows
# or
open index.html # macOS
# or
xdg-open index.html # LinuxIf your browser restricts local file access, serve it with any static server, for example:
npx serve . # then visit the printed URL- Plain HTML/CSS/JS
- Tailwind CDN for styling
- No dependencies, no frameworks
Issues and PRs are welcome!
- File:
index.htmlcontains all the logic and level definitions. - Keep code readable and avoid adding heavy dependencies.
- Favor small, focused levels that teach a single concept well.
MIT
- Inspired by Vim’s modal editing and motion/operator design.
- ASCII logo included in the page for flair.

