declare-option -hidden str explore_buffers_current set-face global ExploreBuffers 'yellow,default' add-highlighter shared/buffers regions add-highlighter shared/buffers/content default-region group add-highlighter shared/buffers/content/buffers regex '^.+$' 0:ExploreBuffers define-command -hidden explore-buffers -docstring 'Explore buffers' %{ evaluate-commands -save-regs '"/' %{ set-option current explore_buffers_current %val(bufname) edit! -scratch *buffers* set-option buffer filetype buffers evaluate-commands set-register dquote %val(buflist) execute-keys ')i' set-register / "\Q%opt(explore_buffers_current)\E" execute-keys n }} define-command -hidden explore-buffers-parent -docstring 'Explore the parent directory of the selected buffer' %{ explore-buffers-validate explore-files %sh(dirname "$kak_buffile") } define-command -hidden explore-buffers-validate -docstring 'Edit selected buffer' %{ execute-keys '_' buffer %reg(.) delete-buffer *buffers* } define-command -hidden explore-buffers-delete -docstring 'Delete selected buffer' %{ execute-keys '_' delete-buffer %reg(.) explore-buffers } hook global WinSetOption filetype=buffers %{ add-highlighter window/ ref buffers map window normal ': explore-buffers-validate' map window normal ': explore-buffers-parent' map window normal q ': delete-buffer' map window normal ': delete-buffer' map window normal d ': explore-buffers-delete' hook -always -once window WinSetOption filetype=.* %{ remove-highlighter window/buffers } } define-command -hidden explore-buffers-enable %{ hook window -group explore-buffers RuntimeError '\d+:\d+: ''(buffer|b)'' wrong argument count' %{ # Hide error message echo explore-buffers } } hook -group explore-buffers global WinCreate .* %{ explore-buffers-enable }