gutenberg-typist

Touch typing practice in Vim, powered by Project Gutenberg

Learned to type on GNU gtypist? Graduate to the classics — then join the typist guild

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
Pineapple rock, lemon platt, butter scotch. A sugersticky girl shovelling scoopfuls of crea ~ ~ ~ ~ ~ ~
WPM: 67 | Accuracy: 94.3% | Progress: 2.1%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.
:GT search ulysses

Search Project Gutenberg and pick a book from the popup picker

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

Session and lifetime statistics, merged across every machine you practice on

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.

Sync between machines

Progress saves automatically — :GT resume picks up right where you left off. :GT export / :GT import merge stats and book progress across machines, without ever double-counting.

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 and WPM calculation window.

Installation

Add gutenberg-typist to your Vim config in seconds.

Native Vim 8 packages

# Works on a fresh Vim — run from anywhere: mkdir -p ~/.vim/pack/plugins/start git clone https://github.com/5x5x5x5/gutenberg-typist \ ~/.vim/pack/plugins/start/gutenberg-typist # Then in Vim: :GT search pride prejudice

vim-plug

" In your vimrc: Plug '5x5x5x5/gutenberg-typist' " Then run :PlugInstall

Manual (custom location)

" Clone anywhere, then in your vimrc: set rtp+=~/code/gutenberg-typist " Setup() is optional — only for overrides

Commands

All commands are under the :GT namespace.

CommandDescription
:GT search <query> Search Project Gutenberg and pick a book from the results
:GT start <id> Start typing a book by its Gutenberg ID
:GT resume Resume the most recent session
:GT stop Save progress and close the typing view
:GT stats Show session and lifetime statistics
:GT library Browse previously downloaded books
:GT export [file] Export stats and book progress to a portable bundle
:GT import <file> Merge a bundle exported on another machine