From ba887ace7fed81ab96a63d3d9f6ad9d68031d4b6 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Thu, 9 Aug 2018 00:42:01 +1200 Subject: Adjust ,[ and ,] maps to add visual mode --- vim/after/ftplugin/mail.vim | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'vim/after') diff --git a/vim/after/ftplugin/mail.vim b/vim/after/ftplugin/mail.vim index 73749893..d5f38166 100644 --- a/vim/after/ftplugin/mail.vim +++ b/vim/after/ftplugin/mail.vim @@ -63,7 +63,12 @@ nnoremap let b:undo_ftplugin .= '|nunmap l' " Move through quoted paragraphs like normal-mode `{` and `}` -function! s:NewBlank(start, count, up) abort +function! s:NewBlank(count, up, visual) abort + + " Reselect visual selection + if a:visual + normal! gv + endif " Flag for whether we've started a block let l:block = 0 @@ -72,7 +77,7 @@ function! s:NewBlank(start, count, up) abort let l:blocks = 0 " Iterate through buffer lines - let l:num = a:start + let l:num = line('.') while l:num > 0 && l:num <= line('$') " If the line is blank @@ -109,14 +114,20 @@ endfunction " Maps using NewBlank() function above for quoted paragraph movement nnoremap [ - \ :call NewBlank(line('.'), v:count1, 1) + \ :call NewBlank(v:count1, 1, 0) nnoremap ] - \ :call NewBlank(line('.'), v:count1, 0) + \ :call NewBlank(v:count1, 0, 0) onoremap [ - \ :call NewBlank(line('.'), v:count1, 1) + \ :call NewBlank(v:count1, 1, 0) onoremap ] - \ :call NewBlank(line('.'), v:count1, 0) + \ :call NewBlank(v:count1, 0, 0) +xnoremap [ + \ :call NewBlank(v:count1, 1, 1) +xnoremap ] + \ :call NewBlank(v:count1, 0, 1) let b:undo_ftplugin .= '|nunmap [' \ . '|nunmap ]' \ . '|ounmap [' \ . '|ounmap ]' + \ . '|xunmap [' + \ . '|xunmap ]' -- cgit v1.2.3