this repo has no description
1" Section: Line operations
2
3function! s:ExecMove(cmd) abort
4 let old_fdm = &foldmethod
5 if old_fdm !=# 'manual'
6 let &foldmethod = 'manual'
7 endif
8 normal! m`
9 silent! exe a:cmd
10 norm! ``
11 if old_fdm !=# 'manual'
12 let &foldmethod = old_fdm
13 endif
14endfunction
15
16function! s:Move(cmd, count, map) abort
17 call s:ExecMove('move'.a:cmd.a:count)
18 silent! call repeat#set("\<Plug>unimpairedMove".a:map, a:count)
19endfunction
20
21function! s:MoveSelectionUp(count) abort
22 call s:ExecMove("'<,'>move'<--".a:count)
23 silent! call repeat#set("\<Plug>unimpairedMoveSelectionUp", a:count)
24endfunction
25
26function! s:MoveSelectionDown(count) abort
27 call s:ExecMove("'<,'>move'>+".a:count)
28 silent! call repeat#set("\<Plug>unimpairedMoveSelectionDown", a:count)
29endfunction
30
31nnoremap <silent> <Plug>unimpairedMoveUp :<C-U>call <SID>Move('--',v:count1,'Up')<CR>
32nnoremap <silent> <Plug>unimpairedMoveDown :<C-U>call <SID>Move('+',v:count1,'Down')<CR>
33xnoremap <silent> <Plug>unimpairedMoveSelectionUp :<C-U>call <SID>MoveSelectionUp(v:count1)<CR>
34xnoremap <silent> <Plug>unimpairedMoveSelectionDown :<C-U>call <SID>MoveSelectionDown(v:count1)<CR>
35
36nmap [e <Plug>unimpairedMoveUp
37nmap ]e <Plug>unimpairedMoveDown
38xmap [e <Plug>unimpairedMoveSelectionUp
39xmap ]e <Plug>unimpairedMoveSelectionDown