a combo tracker for (neo)vim, completely written in lua or vimscript
Find a file
alemi 9f12726025
Improvements to filetype detection, plugin loading
- Create .vim folder too if missing
- Use filetype to categorize combo instead of file extension (this will
  reset some combo counters, such as python: py.cmb -> python.cmb)
- Reload combo stats upon filetype change
- Check if combo tracking is already loaded on script start (to prevent
  multiple instances when sourcing vimrc again)
- More verbose g:combo (access numbers directly at g:combo_counter and
  g:best_combo)

To fix any lost combo score, rename the file accordingly in
~/.vim/.combo
2021-10-18 00:45:46 +02:00
.combo Added per file tracking 2019-11-02 02:33:20 +01:00
doc eww why airline, very much more generic now 2021-01-30 22:48:08 +01:00
plugin Improvements to filetype detection, plugin loading 2021-10-18 00:45:46 +02:00
LICENSE Initial commit 2019-10-22 11:49:56 +02:00
README.md More README update 2021-01-30 23:07:56 +01:00

vim-combo

why

Have you ever wanted to obsessively classify your performance against know people of yours with a not-really-so-relevant score in different programming languages? This plugin comes right to the rescue!

what

It keeps track of a "combo" counter that increases every time you press a key. Waiting for too long resets such counter. Deleting won't increase your combo but it will reset the timer. By default, the timer is 1 second. It may seem tight but longer timers lead to incredibly big combos too easily. Pasting counts as 1 (be it in Insert-Paste or directly from clipboard), movement does not affect the counter.

how

It uses a function called on buffer change (autocmd on TextChangedI) to increases the counter. Current time is checked every time against last recorded time.

vim-combo keeps track of your best combos for each filetype with files inside the hidden .combo folder (~/.vim/.combo). Every time vim loads, the best combo is loaded from file (one is kept for each filetype edited). Every time you get a new best score, the value on file is replaced.

powermode for vim?

vim-combo is inspired by the power-mode many more graphical editors have. While all the particles and text shaking is nice, the thing I really wanted was to keep track of my typing combos.

There already are few plugins which provide particles (vim-particle, vim-power-mode) but they require gui and some fiddling. vim-combo can run on any system since it's only vim script!

quickstart

If you just load this with a plugin manager, your combo will be tracked but not displayed anywhere. Current combo string is kept in g:combo, you can place it anywhere you'd like. If you don't have specific statusbar edits, you can add

set statusline=%{g:combo}

in your .vimrc.

configuring

  • You can change the combo timeout by overriding g:timeout in your .vimrc. Defaults to 1.
  • You can access the whole combo string in g:combo. You can find current score in g:combo_counter and best score for file in g:combo_best.
  • You can bind function Cheated() to a key. If you by accident register an unfair value, you can call it to revert.

is this fast?

vim-combo should be pretty fast. It runs a lot but does very little (time difference, counter). If you have any issue contact me!