Still in development, might have bugs or unexpected behaviours
Speed Motion is a Neovim plugin designed to practice typing directly inside your favorite editor. Whether you want to improve your raw typing speed with common English words or build muscle memory for specific programming language syntax, Speed Motion has a mode for you.
- Two Distinct Game Modes:
- Normal Mode: A classic 30-second typing sprint using common English words.
- Code Mode: Practice real-world code snippets with syntax highlighting and virtual text guides.
- Real-time Feedback: Instant visual cues for correct (green) and incorrect (red) characters.
- Language Support: specialized snippets for Rust, Go, and Java.
- Performance Stats: Calculates WPM (Words Per Minute) and tracks errors.
You can install speed-motion.nvim using lazy.nvim.
return {
"maelwalser/speed-motion.nvim",
cmd = "SpeedMotion", -- Lazy load when the command is used
}Start the plugin by running the following command in Neovim:
:SpeedMotionThis will open the Main Menu where you can select your game mode using j/k to navigate and Enter to select.
To force-close the game window at any time, you can use:
:SlowMotionFocus on raw speed. You have 30 seconds to type as many words as possible from a randomized sequence of the 200 most common English words.
-
Goal: Type as fast as you can.
-
Result: Displays your WPM and total words typed upon time expiration.
2. Code Mode (Syntax Practice)

Focus on accuracy and special character muscle memory. You will be presented with random code snippets (Structs, Interfaces, Loops, etc.) in your chosen language.
-
Goal: Complete the snippet accurately. The timer counts up to track how long it takes you.
-
Visuals: Uses virtual text (ghost text) to show the remaining characters on the line.
Controls:
<Enter>: Moves to the next line (Smart navigation—does not break the snippet layout).
<Tab>: Inserts 2 spaces.
dd: Clears the current line's input (retries the line).
cc: Clears the line and enters Insert mode.
Vim motions like ce or de should also work!
Supported Languages (Code Mode)
- Go
- Rust
- Java
