diff --git a/.config/kak/autoload/surround.kak b/.config/kak/autoload/surround.kak new file mode 100644 index 00000000..522f5700 --- /dev/null +++ b/.config/kak/autoload/surround.kak @@ -0,0 +1,41 @@ +declare-user-mode surround-add +define-command -override surround-add-pair -params 2 %{ + evaluate-commands -draft -save-regs '"' %{ + set-register '"' %arg{1} + execute-keys -draft P + set-register '"' %arg{2} + execute-keys -draft p + } +} + +# command surrounds with any arbitrary character +define-command -override surround-add -params 1 %{ + evaluate-commands -draft -save-regs '"' %{ + set-register '"' %arg{1} + execute-keys -draft P + execute-keys -draft p + } +} + +define-command -hidden surround-delete-key -params 1 %{ + execute-keys -draft "%arg{1}ia" +} + +define-command surround-delete %{ + on-key %{ + surround-delete-key %val{key} + } +} + +map global surround-add ( ':surround-add-pair ( )' -docstring 'surround with parenthesis' +map global surround-add ) ':surround-add-pair ( )' -docstring 'surround with parenthesis' +map global surround-add [ ':surround-add-pair [ ]' -docstring 'surround with brackets' +map global surround-add ] ':surround-add-pair [ ]' -docstring 'surround with brackets' +map global surround-add { ':surround-add-pair { }ret>' -docstring 'surround with braces' +map global surround-add } ':surround-add-pair { }' -docstring 'surround with braces' +map global surround-add < ':surround-add-pair < >ret>' -docstring 'surround with angles' +map global surround-add > ':surround-add-pair < >' -docstring 'surround with angles' +map global surround-add "'" ":surround-add-pair ""'"" ""'""" -docstring 'surround with quotes' +map global surround-add '"' ":surround-add-pair '""' '""'" -docstring 'surround with double quotes' +map global surround-add * ':surround-add-pair * *' -docstring 'surround with asteriks' +map global surround-add _ ':surround-add-pair _ _' -docstring 'surround with undescores'