{"id":16587358,"url":"https://github.com/alemidev/vim-combo","last_synced_at":"2025-04-14T15:30:50.015Z","repository":{"id":45480259,"uuid":"216779018","full_name":"alemidev/vim-combo","owner":"alemidev","description":"A combo tracker for (neo)vim, completely written in lua or vimscript","archived":false,"fork":false,"pushed_at":"2024-01-23T16:57:21.000Z","size":57,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-28T04:24:08.551Z","etag":null,"topics":["neovim","vim"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alemidev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-10-22T09:49:55.000Z","updated_at":"2025-02-25T14:12:37.000Z","dependencies_parsed_at":"2022-07-15T03:30:45.703Z","dependency_job_id":null,"html_url":"https://github.com/alemidev/vim-combo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alemidev%2Fvim-combo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alemidev%2Fvim-combo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alemidev%2Fvim-combo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alemidev%2Fvim-combo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alemidev","download_url":"https://codeload.github.com/alemidev/vim-combo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248906366,"owners_count":21181164,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["neovim","vim"],"created_at":"2024-10-11T22:54:01.181Z","updated_at":"2025-04-14T15:30:49.983Z","avatar_url":"https://github.com/alemidev.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vim-combo\n## why\nHave 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!\n## what\nIt keeps track of a \"combo\" counter that increases every time you type something. Waiting for too long resets such counter.\nDeleting 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.\nPasting counts as 1 (be it in Insert-Paste or directly from clipboard), movement does not affect the counter.\n## how\nIt uses a function called on buffer change (autocmd on TextChangedI) to increases the counter. Current time is checked every time against last recorded time.\n\nvim-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.\n\n# powermode for vim?\nvim-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.\n\nThere 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!\n\n# quickstart\nIf 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`.\n\nYou can (for example) put the value anywhere in your statusline:\n```\nset statusline=%{g:combo}\n```\n# configuring\n* You can change the combo timeout by overriding `g:combo_timeout` in your `.vimrc`. Defaults to 1.\n* 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`.\n* You can bind function `Cheated()` to a key. If you by accident register an unfair value, you can call it to revert.\n\n# is this fast?\nvim-combo should be pretty fast. It runs often but does very little (float difference, comparison, increment). I/O to disk is tiny and rare.\nIf you have any issue don't hesitate to contact me!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falemidev%2Fvim-combo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falemidev%2Fvim-combo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falemidev%2Fvim-combo/lists"}