From 7cb43d08fb4f6c749b384bf7218b39557e824c47 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Wed, 8 Aug 2018 13:28:15 +1200 Subject: Allow count prefixes for ,[ and ,] in mail --- vim/after/ftplugin/mail.vim | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'vim/after/ftplugin') diff --git a/vim/after/ftplugin/mail.vim b/vim/after/ftplugin/mail.vim index 62039585..b10a79ab 100644 --- a/vim/after/ftplugin/mail.vim +++ b/vim/after/ftplugin/mail.vim @@ -63,29 +63,34 @@ nnoremap let b:undo_ftplugin .= '|nunmap l' " Maps to move to the next blank line content-wise (i.e. quoted still counts) -function! s:NewBlank(num, up) abort - let l:num = a:num - let l:par = 0 +function! s:NewBlank(start, count, up) abort + let l:block = 0 + let l:blocks = 0 + let l:num = a:start while l:num > 0 && l:num <= line('$') if getline(l:num) =~# '^[ >]*$' - if l:par + if l:block + let l:block = 0 + let l:blocks += 1 + endif + if l:blocks == a:count break endif else - let l:par = 1 + let l:block = 1 endif let l:num += a:up ? -1 : 1 endwhile execute l:num endfunction nnoremap [ - \ :call NewBlank(line('.'), 1) + \ :call NewBlank(line('.'), v:count1, 1) nnoremap ] - \ :call NewBlank(line('.'), 0) + \ :call NewBlank(line('.'), v:count1, 0) onoremap [ - \ :call NewBlank(line('.'), 1) + \ :call NewBlank(line('.'), v:count1, 1) onoremap ] - \ :call NewBlank(line('.'), 0) + \ :call NewBlank(line('.'), v:count1, 0) let b:undo_ftplugin .= '|nunmap [' \ . '|nunmap ]' \ . '|ounmap [' -- cgit v1.2.3