# vimulator **Repository Path**: mirrors_thoughtbot/vimulator ## Basic Information - **Project Name**: vimulator - **Description**: A JavaScript Vim simulator for demonstrations - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-18 - **Last Updated**: 2026-01-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Vimulator Vimulator is a Vim simulator for teaching and demonstrating Vim. It has a subset of normal mode commands, and an insert mode. [Try it out](http://thoughtbot.github.com/vimulator/) and [run the tests](http://thoughtbot.github.com/vimulator/test.html) online. ## Supported commands ### Motions * h: Move left * j: Move down * k: Move up * l: Move right * 0: Move to the start of the line (before leading whitespace) * ^: Move to the start of the line (after leading whitespace) * $: Move to the end of the line * w: Move to the next word * W: Move to the next WORD * e: Move to the next word ending * E: Move to the next WORD ending * b: Move back to the previous word * B: Move back to the previous WORD * gg: Move to the first line of the file (or a specific line, if a count is given) * G: Move to the last line of the file (or a specific line, if a count is given) * + or Return: Move to the start of the next line (after leading whitespace) * -: Move to the start of the previous line (after leading whitespace) ### Document search * /: Search forwards * ?: Search backwards * n: Go to the next match for the latest search * N: Go to the previous match for the latest search ### Marks * m: Create a mark * \`: Move to a given mark * ': Move to the line containing a given mark ### Insertion * a: Append text after the cursor * A: Append text at the end of the line * i: Insert text before the cursor * I: Insert text at the start of the line (after leading whitespace) * gI: Insert text at the start of the line (before leading whitespace) * o: Open the next line * O: Open the previous line * s: Substitute characters under the cursor * S: Substitute to the end of the line ### Operators * c, cc and C: Change text * d, dd and D: Delete text Operators work with all of the motions and document search commands listed above, and the following text objects: * i or a followed by b, ( or ): Inside or around parenthesis * i or a followed by B, { or }: Inside or around braces * i or a followed by [ or ]: Inside or around square brackets ### Line search * f: Find the next occurrence of a character * F: Find the previous occurrence of a character * t: Find the character before the next occurrence of a character * T: Find the character after the previous ocurrence of a character * ;: Repeat the last line search * ,: Repeat the last line search, reversing the direction ### Edits * r: Replace the character under the cursor * x: Delete the character under the cursor * X: Delete the character before the cursor * .: Repeat the last edit or operator ### Yank and put * yy or Y: Yank the current line * p: Put the most recently yanked line after the current line * P: Put the most recently yanked line before the current line ## License Vimulator is licensed under the [MIT license][mit]. [mit]: http://opensource.org/licenses/MIT