gutenberg-typist

Touch typing practice in Vim, powered by Project Gutenberg

vim
Pineapple rock, lemon platt, butter scotch. A sugarsticky girl shovelling scoopfuls of creams for a christian brother. Some school treat. Bad for their tummies. Lozenge and comfit manufacturer to His Majesty the King. God. Save. Our. Sitting on his throne sucking red jujubes white.
SOURCE1,1
WPM: 67 | Accuracy: 94.3% | Progress: 2.1%
Pineapple rock, lemon platt, butter scotch. A sugersticky girl shovelling scoopfuls of crea ~ ~ ~ ~ ~ ~
[Scratch]4,5
-- INSERT --

Search, type, track

Find any book on Project Gutenberg, practice typing with real-time feedback, and track your progress over time.

vim
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Search Results
1. [4300] Ulysses — Joyce, James 2. [4217] A Portrait of the Artist as a Young Man — Joyce, James 3. [2814] Dubliners — Joyce, James 4. [4013] Ulysses S. Grant — Woodward, William E.
:GutTypist search ulysses

Search Project Gutenberg and pick a book from the popup picker

vim
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Stats
=== GutTypist Stats === -- Current Session -- WPM: 67 Accuracy: 94.3% Chars: 1847 typed, 1742 correct -- Lifetime -- Sessions: 23 Chars: 41209 typed, 38613 correct Accuracy: 93.7% Time: 312 minutes Avg WPM: 62
:GutTypist stats

Session and lifetime statistics in a popup window

Everything you need to practice

Built for Vim users who want typing practice without leaving their editor.

Real-time feedback

Every character you type is instantly highlighted green or red in the source pane. See exactly where you stand at a glance.

WPM tracking

A rolling words-per-minute counter in the statusline, along with accuracy percentage and progress through the book.

Session persistence

Progress saves automatically. Close Vim and come back later — :GutTypist resume picks up right where you left off.

Gutenberg library

Search over 70,000 free books from Project Gutenberg. Practice with the prose that interests you.

Zero dependencies

Just Vim 8.2+ and curl. No external plugins, no build steps, no runtime dependencies.

Customizable

Override highlight groups to match your colorscheme. Configure split ratio, wrap width, and WPM calculation window.

Installation

Add gutenberg-typist to your Vim config in seconds.

vim-plug

Plug '5x5x5x5/gutenberg-typist'

Manual

" Clone the repo, then add to rtp: set rtp+=~/gutenberg-typist call gut_typist#Setup({})

Commands

All commands are under the :GutTypist namespace.

CommandDescription
:GutTypist search <query> Search Project Gutenberg and pick a book from the results
:GutTypist start <id> Start typing a book by its Gutenberg ID
:GutTypist resume Resume the most recent session
:GutTypist stop Save progress and close the typing view
:GutTypist stats Show session and lifetime statistics
:GutTypist library Browse previously downloaded books