Updated doc, timeout is back to 1 second by default, minor fixes

This commit is contained in:
əlemi 2019-10-26 16:33:36 +02:00
parent ce88e430d0
commit 85c413b33d
Signed by: alemi
GPG key ID: A4895B84D311642C
2 changed files with 58 additions and 29 deletions

View file

@ -9,13 +9,25 @@ _________\//\\\\\____\/\\\_\/\\\__\/\\\__\/\\\_______________\//\\\________\//\\
___________\//\\\_____\/\\\_\/\\\__\/\\\__\/\\\________________\///\\\\\\\\__\///\\\\\/___\/\\\__\/\\\__\/\\\_\/\\\\\\\\\___\///\\\\\/___ ___________\//\\\_____\/\\\_\/\\\__\/\\\__\/\\\________________\///\\\\\\\\__\///\\\\\/___\/\\\__\/\\\__\/\\\_\/\\\\\\\\\___\///\\\\\/___
_____________\///______\///__\///___\///___\///___________________\////////_____\/////_____\///___\///___\///__\/////////______\/////_____ _____________\///______\///__\///___\///___\///___________________\////////_____\/////_____\///___\///___\///__\/////////______\/////_____
=========================================================================================================================================== ===========================================================================================================================================
Each keystroke in insert mode increases your combo, but not typing for 0.5 seconds resets it. Each keystroke in insert mode increases your combo,
Hacks are not patched around : you can keep a key pressed to increase your combo, and CTRL+SHIFT+V will all be counted as a combo. but not typing for 1 second resets it.
Hacks are not patched around : you can keep a key pressed to increase your
combo, and CTRL+SHIFT+V will all be counted as a combo.
( since afaik vim does not allow to remap all letters to an action combo
counter is increased with every cursor movement )
Best score is displayed next to the current combo in square brackets. When a new high score is achieved, it is saved inside .vim as .combo. Best score is displayed next to the current combo in square brackets.
If you get errors at launch, check that .combo exists and has just a number inside (should be 0, or last best combo). When a new high score is achieved, it is saved inside .vim as .combo.
If you get errors at launch, check that .combo exists and has just a
number inside (should be 0, or last best combo).
The plugin is still under construction. Right now, you will need to edit the path to the .combo file and choose where to display the combo information. The plugin is not in its final version. Right now, you will need to edit
By default, the section B of airline-vim is overwritten to display current combo. A random Runic character has been chosen to indicate the combo field. the path to the .combo file and choose where to display the combo information.
By default, the section B of airline-vim is overwritten to display current
combo. A random Runic character has been chosen to indicate the combo field.
If you think you can help this little script, absolutely do contact me!
There is a github (https://github.com/alemigliardi/vim-combo). I still know
very little of vim-script!
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:ft=help:norl:

View file

@ -1,13 +1,25 @@
" COMBO Counter " COMBO Counter
let g:combo_counter = 0 " The actual combo variable let g:disable_combo = 0
let g:best_combo = readfile('/home/$USER/.vim/.combo') " ~ is not expanded ??? " Combo counting is disabled in plain text, LaTeX, vim config and files
let g:best_combo = g:best_combo[0] " Reading from file returns a list, but an int is needed " without extension (usually configuration files)
let g:last_combo = reltime() " Set current time as last combo time if expand("%:e") == "txt" || expand("%:e") == "tex" || expand("%:e") == "vim" || expand("%:e") == ""
let g:airline_section_b = 'ᛥ %{g:combo_counter} [%{g:best_combo}]' " I use airline vim and inserted the combo meter in it let g:disable_combo = 1
function! UpdateCombo() endif
if reltimefloat(reltime(g:last_combo)) > 0.5 " Timeout is 0.5 seconds
if g:disable_combo == 1
let g:best_combo = readfile('$HOME/.vim/.combo')
let g:best_combo = g:best_combo[0]
let g:airline_section_b = 'ᛥ [%{g:best_combo}]'
else
let g:combo_counter = 0 " The actual combo variable
let g:best_combo = readfile('$HOME/.vim/.combo') " ~ is not expanded ???
let g:best_combo = g:best_combo[0] " Reading from file returns a list, but an int is needed
let g:last_combo = reltime() " Set current time as last combo time
let g:airline_section_b = 'ᛥ %{g:combo_counter} [%{g:best_combo}]' " I use airline vim and inserted the combo meter in it
function! UpdateCombo()
if reltimefloat(reltime(g:last_combo)) > 1 " Timeout is 1 second
if g:combo_counter > g:best_combo " Before resetting combo counter, check if new high score if g:combo_counter > g:best_combo " Before resetting combo counter, check if new high score
call writefile([g:combo_counter], "/home/$USER/.vim/.combo") " Sorry no idea how to solve this yes call writefile([g:combo_counter], "$HOME/.vim/.combo")
let g:best_combo = g:combo_counter let g:best_combo = g:combo_counter
endif endif
let g:combo_counter = 1 let g:combo_counter = 1
@ -15,11 +27,16 @@ function! UpdateCombo()
let g:combo_counter +=1 let g:combo_counter +=1
endif endif
let g:last_combo = reltime() let g:last_combo = reltime()
endfunction endfunction
autocmd CursorMovedI * call UpdateCombo() " Every time the cursor moves, cwall combo function autocmd CursorMovedI * call UpdateCombo() " Every time the cursor moves, call combo function
function! ResetCombo()
let g:combo_counter = 0
call writefile(0, "$HOME/.vim/.combo")
endfunction
" NOT NECESSARY! Only enable if you find yourself cheating! " NOT NECESSARY! Only enable if you find yourself cheating by staying in insert mode!
" inoremap <Left> <C-o>:let g:combo_counter=0<CR><Left> " inoremap <Left> <C-o>:let g:combo_counter=0<CR><Left>
" inoremap <Right> <C-o>:let g:combo_counter=0<CR><Right> " inoremap <Right> <C-o>:let g:combo_counter=0<CR><Right>
" inoremap <Up> <C-o>:let g:combo_counter=0<CR><Up> " inoremap <Up> <C-o>:let g:combo_counter=0<CR><Up>
" inoremap <Down> <C-o>:let g:combo_counter=0<CR><Down> " inoremap <Down> <C-o>:let g:combo_counter=0<CR><Down>
endif