require("key/rekey")

-- wraps.
rekey_visual('mw"', 's""<esc>P')        -- wrap in "".
rekey_visual('mw3"', 's""""""<esc>hhP') -- wrap in 3x "".
rekey_visual('mw\'', 's\'\'<esc>P')     -- wrap in ''.
rekey_visual('mw(', 's()<esc>P')        -- wrap in ().
rekey_visual('mw{', 's{}<esc>P')        -- wrap in {}.
rekey_visual('mw<', 's<><esc>P')        -- wrap in {}.
rekey_visual('mw[', 's[]<esc>P')        -- wrap in [].
rekey_visual('mw`', 's``<esc>P')        -- wrap in ``.
rekey_visual('mw3`', 's``````<esc>hhP') -- wrap in 3x ``.
rekey_visual('mw*', 's**<esc>P')        -- wrap in **.
rekey_visual('mw2*', 's****<esc>hP')    -- wrap in 2x **.
rekey_visual('mw3*', 's******<esc>hhP') -- wrap in 3x **.

-- markdown.
rekey_normal('mmx', ':s/- \\[ \\]/- \\[x\\]<C-l>/<cr>')  -- mark checkbox.
rekey_normal('mm ', ':s/- \\[x\\]/- \\[ \\]<C-l>/<cr>')  -- unmark checkbox.
rekey_visual('mmx', ':s/- \\[ \\]/- \\[x\\]<C-l>/<cr>')  -- mark checkbox (multiline select),
rekey_visual('mm ', ':s/- \\[x\\]/- \\[ \\]<C-l>/<cr>')  -- unmark checkbox (multiline select).
rekey_normal('mmp', 'I  <esc>')                          -- insert paragraph (indent).
rekey_visual('mmb', 's****<esc>hP')                      -- make bold.
rekey_visual('mmi', 's**<esc>P')                         -- make italic.
rekey_visual('mms', 's~~~~<esc>hP')                      -- make strikethrough.
rekey_visual('mmr', 's``<esc>P')                         -- wrap in `` (reference).
rekey_visual('mmc', 's``````<esc>hhPa<cr><cr><esc><up>') -- wrap in 3x `` (code).
-- rekey_visual('mm>', ':s/^')
-- rekey_visual('mm<', '')
-- rekey_normal('mm>', '')
-- rekey_normal('mm<', '')

-- increment.
rekey_normal('mi', '<C-a>yyup<C-o>j') -- copy line and increment number under cursor.

-- select.
rekey_normal('ma', 'ggVG') -- select all.