# vim.is > Interactive vim exercises directly in your browser. Build muscle memory through hands-on practice. No reading chapters. No watching videos. vim.is provides 153 browser-based interactive exercises running a real vim emulator. It teaches navigation, text insertion, operators, vim text objects (ciw, diw, ci", ci(, ci{), search and replace, registers, and developer workflows. ## Key Information - Website: https://vim.is/ - Pricing: $4.99 one-time payment for lifetime access on Gumroad. No subscription. - Free Trial: First exercise free on the landing page, no signup or install required. - Environment: Runs in any modern web browser. - Compatibility: Teaches standard vim motions compatible with VS Code Vim extension, JetBrains IdeaVim, Neovim, and terminal Vim. ## Curriculum (153 Interactive Exercises) ### Module 1: Warm Up (Exercises 1-10) - 001. Walk right with l - 002. Go too far, then come back - 003. Go down with j - 004. Up and down the elevator - 005. All four directions - 006. Stuck key: x - 007. Backspace: X - 008. Delete junk with a count - 009. Oops! Undo with u - 010. Redo with Ctrl-r ### Module 2: Words and Lines (Exercises 11-19) - 011. Teleport to the end: $ - 012. Back to the start: 0 - 013. First real character: ^ - 014. Hop forward: w - 015. Hop backward: b - 016. Land on the end: e - 017. Big words: W - 018. Count your jumps - 019. Top and bottom: gg and G ### Module 3: Insert Mode (Exercises 20-26) - 020. Insert before: i - 021. Insert after: a - 022. Start of line: I - 023. End of line: A - 024. New line below: o - 025. New line above: O - 026. Type it five times ### Module 4: Delete (Exercises 27-36) - 027. Delete a word: dw - 028. Delete backwards: db - 029. Delete several words: d3w - 030. Delete around a word: daw - 031. Delete a line: dd - 032. Delete many lines: 3dd - 033. Delete this and next: dj, dk - 034. Delete to the top: dgg - 035. Delete to the end: D - 036. Delete to the start: d0 ### Module 5: Change (Exercises 37-45) - 037. Replace one letter: r - 038. Overwrite mode: R - 039. Swap one for many: s - 040. Rewrite the line: S - 041. Change a word: cw - 042. Change the rest of a word: ce - 043. Change several words: c3w - 044. Change to the end: C - 045. Change the whole line: cc ### Module 6: Repeat and Undo (Exercises 46-52) - 046. Say it again: the dot - 047. Dot after dw - 048. Dot after cw - 049. Dot after A and I - 050. Dot after o - 051. Dot with a count: 3. - 052. Undo a whole insert ### Module 7: Copy and Paste (Exercises 53-62) - 053. Yank a line: yy and p - 054. Paste above: P - 055. Move a line down: ddp - 056. Move a line up: ddkP - 057. Swap two letters: xp - 058. Say it twice: yw and P - 059. Copy a block: 3yy - 060. Paste many times: 3p - 061. Two clipboards: registers - 062. A safe yank: register 0 ### Module 8: Find on a Line (Exercises 63-70) - 063. Find forward: f - 064. Find backward: F - 065. Till: t - 066. Till backwards: T - 067. Change till: ct - 068. Delete through: df - 069. Repeat the find: ; - 070. Go back: comma ### Module 9: Text Objects (Exercises 71-84) - 071. Change inner word: ciw - 072. Change inside quotes: ci" - 073. Empty the quotes: di" - 074. Delete with quotes: da" - 075. Single quotes: ci' - 076. Change inside parentheses: ci( - 077. Empty the parentheses: di( - 078. Delete with parentheses: da( - 079. Change inside brackets: ci[ - 080. Empty the brackets: di[ - 081. Change inside braces: ci{ - 082. Empty the braces: di{ - 083. Delete a paragraph: dap - 084. Change a paragraph: cip ### Module 10: Visual Mode (Exercises 85-92) - 085. Select with v - 086. Paste over a selection - 087. Select lines with V - 088. Yank a selection - 089. Shout and whisper - 090. Indent a block - 091. Edit a column: Ctrl-v - 092. Check all the boxes ### Module 11: Search and Jump (Exercises 93-103) - 093. Go to line N: 7G - 094. Go to line N: :7 - 095. Jump a paragraph: } - 096. Matching bracket: % - 097. Search: / and n - 098. Search back: N - 099. Search backwards: ? - 100. Find this word: * - 101. Star and n - 102. Bookmarks: ma and 'a - 103. Exact bookmarks: `a ### Module 12: Substitute and Ex Commands (Exercises 104-115) - 104. Replace on a line: :s - 105. Replace every match: g flag - 106. Replace in the whole file: :%s - 107. Ignore case: i flag - 108. Limit to a range: :1,3s - 109. Prefix and suffix every line - 110. Remove spaces at the end of lines - 111. Match any number: \d+ - 112. Swap with groups: $1 $2 - 113. Sort lines: :sort - 114. Sort backwards: :sort! - 115. Sort and remove duplicates: :sort u ### Module 13: Power Tools (Exercises 116-128) - 116. Flip case: ~ - 117. Toggle a word: g~iw - 118. Shout a word: gUiw - 119. Whisper a word: guiw - 120. Shout the rest: gU$ - 121. Flip a whole line: g~~ - 122. Count up: Ctrl-a - 123. Count down: Ctrl-x - 124. Count up everywhere - 125. Join lines: J - 126. Indent a line: >> - 127. Dedent a line: << - 128. Indent many lines: 3>> ### Module 14: Boss Battles (Exercises 129-135) - 129. Boss 1: The Typo Hydra - 130. Boss 2: The Missing Pieces - 131. Boss 3: The Code Monster - 132. Boss 4: The Bug Swarm - 133. Boss 5: The List Lord - 134. Boss 6: The Shuffler - 135. Final Boss: The Vim Dragon ### Module 15: Speed Runs (Exercises 136-153) - 136. Speed run: jump to the end of the line - 137. Speed run: jump three words forward - 138. Speed run: insert with i - 139. Speed run: insert at the start with I - 140. Speed run: append at the end with A - 141. Speed run: open a line below with o - 142. Speed run: open a line above with O - 143. Speed run: delete lines - 144. Speed run: delete to the end of the line - 145. Speed run: change the rest of a word - 146. Speed run: replace mode - 147. Speed run: copy lines - 148. Speed run: copy and paste lines - 149. Speed run: jump to a character - 150. Speed run: replace in a file - 151. Speed run: repeat the last command - 152. Speed run: change case - 153. Speed run: increase and decrease numbers ## Detailed Documentation - [Full Curriculum & Cheatsheet](https://vim.is/llms-full.txt) - [Curriculum Overview Page](https://vim.is/overview)