practicalli / neovim

Neovim, Conjure and LSP for Clojure development using Fennel configuration
https://practical.li/neovim/
Creative Commons Attribution Share Alike 4.0 International
21 stars 5 forks source link

Structural editing in Neovim #4

Closed practicalli-johnny closed 1 year ago

practicalli-johnny commented 4 years ago

tpope/vim-sexp-mappings-for-regular-people

<e and >e moving elements around

Is there a way to move hash-map key value pairs together?

hack - move each element of pair one at a time does not work if you try to move on the edge of the

  nmap >p 3>e3B3>e
  nmap <p 2<e4E2<e

sexp supports moving around visually selected pairs. I've created a PR for missing mapping https://github.com/tpope/vim-sexp-mappings-for-regular-people/pull/12 . If you have the mapping from the PR than swapping pairs is

nmap >p vaeE>eo<Esc>
nmap <p vaeE<eo<Esc>

selects around current element, moves to the next, visually swaps, moves cursor to the beginning of selection and exists visual mode. this way it works on the edges of a form

I don't seem to have such visual mode mappings by default, but this seems to do the trick

vmap <e <Plug>(sexp_swap_element_backward)
vmap >e <Plug>(sexp_swap_element_forward)