diff options
Diffstat (limited to 'vim/autoload')
-rw-r--r-- | vim/autoload/mail.vim | 20 | ||||
-rw-r--r-- | vim/autoload/quote.vim | 2 |
2 files changed, 21 insertions, 1 deletions
diff --git a/vim/autoload/mail.vim b/vim/autoload/mail.vim index baff4bbf..0c3b7eb7 100644 --- a/vim/autoload/mail.vim +++ b/vim/autoload/mail.vim @@ -65,3 +65,23 @@ function! mail#NewBlank(count, up, visual) abort endif endfunction + +" Quick map to strip multiple blank lines in the entire buffer; this comes up +" a lot when replying to stripped HTML mail. This should really be a command, +" but I'll do that Later(TM). +function! mail#ContractMultipleBlankLines() abort + let l:deletions = [] + let l:blank = 0 + for l:num in range(1, line('$')) + if strlen(getline(l:num)) > 0 + let l:blank = 0 + elseif l:blank + let l:deletions += [l:num] + else + let l:blank = 1 + endif + endfor + for l:num in reverse(l:deletions) + execute l:num . 'delete' + endfor +endfunction diff --git a/vim/autoload/quote.vim b/vim/autoload/quote.vim index 35df76a4..2343b12a 100644 --- a/vim/autoload/quote.vim +++ b/vim/autoload/quote.vim @@ -27,7 +27,7 @@ function! quote#QuoteOpfunc(type) abort " Only add a space after the quote character if this line isn't already " quoted with the same character - let l:new = stridx(l:cur, l:char) == 0 + let l:new = l:cur[0] == l:char \ ? l:char.l:cur \ : l:char.' '.l:cur call setline(l:li, l:new) |