declare-user-mode paragraph declare-option -hidden str paragraph_select 'pj[p' declare-option -hidden str reflow_cmd %{ fmt -u | sed -E 's/([.!?]) +/\1 /g' } define-command format-paragraph %{ execute-keys -draft p_x:format-selections } define-command -override -params 0..1 reflow-paragraph %{ evaluate-commands -draft -save-regs 'a|' %{ set-register | %opt{reflow_cmd} set-register a %sh{ if [ "$#" = 0 ]; then printf '%s' '|' else printf '%s' ':format-selections' fi } echo -debug %reg{a} execute-keys -draft 'p_x:exec a' } } map global normal ': reflow-paragraph' map global normal 'pj[p' map global normal ': reflow-paragraph formatcmd' map -docstring 'paragraph mode' global user "%opt{paragraph_select}: enter-user-mode -lock paragraph" map global paragraph I '>' -docstring 'move right' map global paragraph M '<' -docstring 'move left' map global paragraph E "d[pP[p%opt{paragraph_select}" -docstring 'move up' map global paragraph N "d]pp]p[p%opt{paragraph_select}" -docstring 'move down' map global paragraph n "]p%opt{paragraph_select}" -docstring 'select down' map global paragraph e "[p%opt{paragraph_select}" -docstring 'select up' map global paragraph d "d%opt{paragraph_select}" -docstring 'delete' map global paragraph y y -docstring 'yank'