From 2560f9a91ccc3c269851fb25100f0836a1dbcb67 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Mon, 27 Aug 2018 17:29:24 +1200 Subject: Convert a few stridx() to alternative forms If we don't actually want to know whether the string occurs *anywhere* in the line, just at the start, we should really use substring operations or plain old regular expression tests. --- vim/autoload/quote.vim | 2 +- vim/filetype.vim | 2 +- vim/scripts.vim | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) 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) diff --git a/vim/filetype.vim b/vim/filetype.vim index 192a7283..541976f4 100644 --- a/vim/filetype.vim +++ b/vim/filetype.vim @@ -45,7 +45,7 @@ endfunction " Check whether the first line was changed and looks like a shebang, and if " so, re-run filetype detection function! s:CheckShebang() - if line('''[') == 1 && stridx(getline(1), '#!') == 0 + if line('''[') == 1 && getline(1) =~# '^#!' doautocmd filetypedetect BufRead endif endfunction diff --git a/vim/scripts.vim b/vim/scripts.vim index ae792ada..f79fa74c 100644 --- a/vim/scripts.vim +++ b/vim/scripts.vim @@ -6,7 +6,7 @@ let s:line = getline(1) " If it's not a shebang, we're done -if stridx(s:line, '#!') != 0 +if s:line !~# '^#!' finish endif -- cgit v1.2.3 From 9f48fbb4fbef55040a8c28bf17f13bbde6b24730 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Wed, 29 Aug 2018 11:08:12 +1200 Subject: Add mapping to contract multiple blank lines This should be a command, and may very well be useful outside of mail contexts, but this will do OK for now. --- vim/after/ftplugin/mail.vim | 5 +++++ vim/autoload/mail.vim | 20 ++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/vim/after/ftplugin/mail.vim b/vim/after/ftplugin/mail.vim index 3aa3fec3..df0f043d 100644 --- a/vim/after/ftplugin/mail.vim +++ b/vim/after/ftplugin/mail.vim @@ -83,3 +83,8 @@ let b:undo_ftplugin .= '|nunmap [' \ . '|ounmap ]' \ . '|xunmap [' \ . '|xunmap ]' + +" Quick map to strip multiple blank lines in the entire buffer; this comes up +" a lot when replying to stripped HTML mail +nnoremap x + \ :call mail#ContractMultipleBlankLines() 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 -- cgit v1.2.3 From fbb318a6ab8c9494c76cbb009ec1447c3999b0eb Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Wed, 29 Aug 2018 11:08:40 +1200 Subject: Bump VERSION --- VERSION | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/VERSION b/VERSION index fceba156..e4ace7d4 100644 --- a/VERSION +++ b/VERSION @@ -1,2 +1,2 @@ -tejr dotfiles v1.62.0 -Mon Aug 27 05:18:35 UTC 2018 +tejr dotfiles v1.63.0 +Tue Aug 28 23:08:40 UTC 2018 -- cgit v1.2.3