1. A split interface with text paragraph shown in upper view, and a typing interface in lower view.
2. The current line the user is typing is highlighted with different color.
3. Any error made in typing is highlighted with another color.
4. Can save the current typing session and load it again.
5. Can specify the source text as a file.
6. And all of this in real editor like environment.
If these features are good enough to call something a typing tutor.. then i am talking about something that was there all along and we didnt realize. The vimdiff ( aka vim -d ).
- get a input/source text. say its in file input.txt
- start vimdiff with following command
vimdiff -o input.txt /tmp/temp.txt \
“+exe 2 \”wincmd w\”" “+normal 1000i ” \
“+diffupdate” “+go 1″ “+startinsert”
( Don’t worry about the long argument list. They are used to customize the starting point. Otherwise just the command vimdiff input.txt /tmp/temp.txt is enough.)
A few other setting might make it a better experiance -
- :set wrap
- :set diffopt=filler,iwhite,icase
— iwhite for ignoring amount of white spaces
— icase for ignoring case senstivity
- :set scrollbind
- omit the -o option for vertical split
- :diffupdate to sync the two windows forcefully
enjoy vimtt !!
Related : Advanced Vim Tutorial