vim-combo/README.md

33 lines
2.4 KiB
Markdown
Raw Normal View History

2019-10-22 11:49:56 +02:00
# vim-combo
2021-01-30 23:03:58 +01:00
## why
2021-10-18 01:42:55 +02:00
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~~ *filetypes*? This plugin comes right to the rescue!
2021-01-30 23:03:58 +01:00
## what
2021-10-18 01:42:55 +02:00
It keeps track of a "combo" counter that increases every time you type something. 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.
2021-01-30 23:03:58 +01:00
## how
2021-01-30 23:07:56 +01:00
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.
2019-10-22 12:00:29 +02:00
2021-10-18 01:42:55 +02:00
vim-combo keeps track of your best combos for each filetype with files inside the hidden `.combo` folder (`~/.vim/.combo`). Every time the filetype changes, 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.
2019-10-26 16:28:14 +02:00
2021-01-30 23:03:58 +01:00
# 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.
2021-10-18 01:42:55 +02:00
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 (~90 lines of) vim script!
2019-11-07 06:30:14 +01:00
2021-01-30 23:03:58 +01:00
# quickstart
2021-10-18 01:42:55 +02:00
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`, check it with `:let g:combo`.
You can (for example) put the value anywhere in your statusline:
2021-01-30 23:07:56 +01:00
```
set statusline=%{g:combo}
```
2021-01-30 23:03:58 +01:00
# configuring
2021-10-18 01:42:55 +02:00
* You can change the combo timeout by overriding `g:combo_timeout` in your `.vimrc`. Defaults to 1.
2021-01-30 23:03:58 +01:00
* 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`.
2021-01-30 23:07:56 +01:00
* You can bind function `Cheated()` to a key. If you by accident register an unfair value, you can call it to revert.
2019-11-07 06:30:14 +01:00
2021-01-30 23:03:58 +01:00
# is this fast?
2021-10-18 01:42:55 +02:00
vim-combo should be pretty fast. It runs often but does very little (float difference, comparison, increment). I/O to disk is tiny and rare.
If you have any issue don't hesitate to contact me!