vimmish translates a “vim input stream” to human-readable text:
iDon't know vim :(.<ESC>^2WBc2wbetter now<ESC><RIGHT>Da.<ESC>II can understan<ESC><RIGHT>~dE
i => insert before cursor: Don't know vim :(. => type Don't know vim :(. <ESC> => go to normal mode ^ => move to the begining of the line (not blank character) 2W => move to the begining of the next space-separated word, 2 times B => move backwards one space-separated-word c2w => change to the begining of the next word, 2 times better now => type better now <ESC> => go to normal mode <RIGHT> => move one character to the right D => delete the rest of the current line a => append after cursor: . => type . <ESC> => go to normal mode I => insert to the begining of the current line: I can understan => type I can understan <ESC> => go to normal mode <RIGHT> => move one character to the right ~ => change character case dE => delete to the end of the next space-separated-word
vimtalk = "iDon't know vim :(. Yet :)<ESC>" humanized = Vimmish.humanize(vimmish) pp humanized pp VimmishFormatters.pretty(humanized)
It parses frequently used motions and commands for normal mode / insert mode / visual mode (combined with motions).
Check the test results