From 4bdb6ad08291627954b34b1b3387c9373de4ae2a Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Tue, 17 Jul 2018 10:54:31 +1200 Subject: Don't quote first and last lines of range if blank This allows quoting paragraphs and blocks using { } and similar motions, doing what I mean. --- vim/autoload/quote.vim | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'vim') diff --git a/vim/autoload/quote.vim b/vim/autoload/quote.vim index 26e95698..35df76a4 100644 --- a/vim/autoload/quote.vim +++ b/vim/autoload/quote.vim @@ -17,9 +17,16 @@ function! quote#QuoteOpfunc(type) abort " Iterate over each matched line for l:li in range(line('''['), line(''']')) + " Get current line text + let l:cur = getline(l:li) + + " Don't quote the first or last lines if they're blank + if !strlen(l:cur) && (l:li == line('''[') || l:li == line(''']')) + continue + endif + " Only add a space after the quote character if this line isn't already " quoted with the same character - let l:cur = getline(l:li) let l:new = stridx(l:cur, l:char) == 0 \ ? l:char.l:cur \ : l:char.' '.l:cur -- cgit v1.2.3