diff --git a/.config/kak/autoload/hop.kak b/.config/kak/autoload/hop.kak index b35cf5cc..b9fd89cd 100644 --- a/.config/kak/autoload/hop.kak +++ b/.config/kak/autoload/hop.kak @@ -1,3 +1,19 @@ evaluate-commands %sh{ hop-kak --init } declare-option str hop_kak_keyset 'tnserigmaodhc,x.plfuwyqz' + +# select visible buffer +map global normal ':execute-keys gtGbx' + +define-command hop-kak %{ + eval "ui-scrolloff-disable" + evaluate-commands -no-hooks -- %sh{ + hop-kak --keyset "$kak_opt_hop_kak_keyset" --sels "$kak_selections_desc" + } + eval "ui-scrolloff-enable" +} + +# TODO: fix the broken interaction with scrolloff +define-command -override hop-kak-words %{ + execute-keys 'gtGbxs\w+: hop-kak' +} diff --git a/.config/kak/autoload/ui-mode.kak b/.config/kak/autoload/ui-mode.kak index af7c91ac..4fcc93ba 100644 --- a/.config/kak/autoload/ui-mode.kak +++ b/.config/kak/autoload/ui-mode.kak @@ -18,6 +18,17 @@ map -docstring "toggle soft wrap" global ui w ": ui-wrap-toggle" declare-option str base_scrolloff %opt{scrolloff} +declare-option -hidden str prev_scrolloff %opt{base_scrolloff} + +define-command ui-scrolloff-disable %{ + set-option window prev_scrolloff %opt{scrolloff} + set-option window scrolloff 0,0 +} + +define-command ui-scrolloff-enable %{ + set-option window scrolloff %opt{prev_scrolloff} +} + define-command ui-scrolloff-toggle -docstring "toggle scrolloff" %{ evaluate-commands %sh{ CUR="$kak_opt_scrolloff"