/vscodevimacademy

VSCode extension/game to learn and practice vim motions and commands

VSCODE VIM ACADEMY

中文 日本語

ABOUT

An educational game to learn vim and vscode keys in logical, digestable levels. Builds up your vim muscle memories by practicing vim keys 2~5 keys each level. Level text and keys are randomly generated on a per level basis. For example,

  1. move forward or backward by word
  2. go up or down a random number of lines
  3. delete word forward or backwards from current position
  4. delete word, undo or redo
  5. select, delete, or change lines
  6. delete, copy, or paste words
  7. and more

players complete 10 sets of the tasks as quickly with as little key presses as possible. Hints and manual will be listed on the right panel(CONSOLE), your performance will be logged per task based on how fast your performed and how many keypresses you used.



CHANGES / FIXES (2021/6/3)

  1. Level 'Swap Characters' breaks VVA
  2. Level 'Marks' not loading correctly
  3. Levels 'Goto Definition' and 'Rename Symbol' not loading
  4. Level 'Word Search 3' incorrect setup

CATEGORIES

Levels are separated into five categories.

  1. Motions
  2. Actions - Horizontal
  3. Actions - Vertical
  4. Surrounds
  5. UI

COLOR CODED ACTIONS

In the editor, tasks will be shown as a color outline around the text. It can be a single character, words, lines, text objects or blocks.

  1. Inside - Move the curor inside the yellow box
  2. Delete - Delete the contents of the red box
  3. Select - Select the contents of the orange box
  4. Paste - Paste the contents of green box at the green cursor position
  5. Copy - Copy the contents of the grey box
  6. Editing - change, insert, indent, comment, add, minus depending on the level
  7. Outside - Helper type for the mark level, moving outside completes the task

QUICK START

  1. Install VSCODE VIM extension to enable vim emulation in vscode.
  2. Install VSCODE VIM ACADEMY
  3. Open the command palette ctrl+shift+p
  4. Enter "start vva" in the command palette to start the game.
    Video Tutorial



USER INTERFACE

LEVEL INFO

  1. Star rating on the top right is for importance
  2. Total time
  3. Performance log, try to keep the cyan line below the red line
    1. Current - current task speed
    2. Current Avg - average of current level tasks
    3. Target - based on my times
    4. Hist - these are based on my times while play testing
  4. Task table
  5. Current level keys and key description




LEVEL NAVIGATION

To quickly continue to the next level without using the mouse, this widget will show up at the end of a level. Move the cursor using the vim keys,

  1. 0 - Previous Level
  2. b - Retry Current Level
  3. w - Next Level
  4. $ - Open the Buy Extension Page

To choose a specific level, use the console to go back to the level selection page You can also bind keys for previous, next, and retry levels

  1. vva.prevLevel
  2. vva.retryLevel
  3. vva.nextLevel




Vim Cheatsheet HUD

Painstakingly built SVG Animation! Unlimited resolution!

Press ctrl+alt+c to toggle the cheatsheet in editor, this feature does not require activating VVA or a VVA license, as long as the VVA extension is installed, the cheatsheet can be shown in the editor. Grab the extension now before I put this feature behind the pay wall!


NON-ANIMATED DOWNLOADABLE

Light(Printable) Dark



DEMO


Basic Levels and UI
Word - Move to beginning of word(s) or end of words(s)
Actions Motions

ISSUES

  1. Change to a Dark Theme, VVA currently only supports dark themes.
  2. I had intended to support multiple languages, theres only english, partial chinese and japanese for now. To change language, go to settings/vva/language

LEVEL DETAULS

Motions
  1. Left & Right 1
  2. Up & Down 1
  3. All Directions
  4. Left & Right 2
  5. Up & Down 2
  6. Beginning of Word 1
  7. Beginning of Word 2
  8. End of Word 1
  9. Review - Word Beginning & End
  10. Bol, Eol, First Letter
  11. Review - Word Beginning & BEFCOL
  12. Beginning of Word 3
  13. End of Word 2
  14. Review - WB & ege
  15. Top and Bottom of Page
  16. Up & Down Relative
  17. Review - Top, Bottom & Relative Line
  18. Goto Line
  19. Review - Goto & Relative Line
  20. Top, Middle, Bottom of Screen
  21. Up, Down Half Screen
  22. Up, Down Full Screen
  23. Review - Screen Line Movements
  24. Goto Next Paragraph
  25. Goto Next Sentence
  26. Goto Sections 1 - End Of
  27. Goto Sections 2 - Start Of
  28. Goto Sections 3 - Nearest Start or End
  29. Goto Sections 4 - Start or End
  30. Goto % of File
  31. Hover
  32. Next Pair Match
  33. Searching For Letters 1
  34. Word Search 1
  35. Word Search 2
  36. Word Search 3
  37. Goto Definition
  38. Marks
Actions - Horizontal
  1. Visual Mode 1 - Select & Exit
  2. Visual Mode 2 - Incrementally Select
  3. Select Word
  4. Delete Word
  5. Paste Word
  6. Delete & Paste Word
  7. Copy Word
  8. Change Word
  9. Replace Word
  10. Rename Symbol
  11. Actions + Motion
  12. Actions + Motions
  13. Undo & Redo
  14. Select Find Letter
  15. Select To Letter
  16. Delete & Backspace
  17. Delete & Backspace 2
  18. Change Case
  19. Add, Minus 1
  20. Add, Minus 2 - Numbered
  21. Replace Char & Replace With
  22. Swap Characters
  23. Insert At & After Cursor
  24. Insert At EOL & FCOL
Actions - Vertical
  1. Select Line
  2. Select Line Incrementally
  3. Delete Line
  4. Copy Line
  5. Change Line
  6. Paste Line
  7. Insert Line
  8. Replace Line
  9. All Line
  10. Select Lines
  11. Copy Lines
  12. Insert Lines
  13. Delete Lines
  14. Change Lines
  15. Copy Line & Paste
  16. Join Lines
  17. Swap/Move Line
  18. Indent Lines
  19. Comment Lines
Surrounds
  1. Select Word Text Object
  2. Select All Surround
  3. Select Inside Surround
  4. Delete/Change All
  5. Delete/Change Inside
  6. Add Surround
  7. Delete Surround
  8. Change Surround
  9. Delete HTML Tag Inner/Outer/Surround
UI
  1. Select Group
  2. Left/Right Editor
  3. Left/Right Group
  4. Quick File Navigation 1 - Search
  5. Quick File Navigation 2 - Last File

THANKS

For the four initial buyers and supporters of VVA, gave me some faith that this just might work.

If you find this extension useful, spread the word, give me some feedback at the git repo or extension marketplace and perhaps buy the extension. With enough support, I would like to rework the task decorationOptions to use svg animations instead of the vscode default fadeIn fadeOut css animation. Something cool, like arrows pointing to navigating positions or text delete animations using SVG.

NOTES

Buy a license to unlock all the levels

paypal

TODO

  1. demonstrate the learning process of vva
  2. demonstrate what a high level vim user is capable of
  3. my keybindings for other parts of vscode that uses the same keys as vim. (side panels, terminal, command palette)
  4. level descriptions
  5. webpack the extension