From bb456ddcf43f5eaa9de0c953cc773334e7f12aad Mon Sep 17 00:00:00 2001 From: Tim Pope Date: Fri, 25 Jan 2008 18:31:07 +0000 Subject: [PATCH] Fix edgecase where ds would move the inner text --- plugin/surround.vim | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/plugin/surround.vim b/plugin/surround.vim index a7a0f4c..d77a01d 100644 --- a/plugin/surround.vim +++ b/plugin/surround.vim @@ -424,8 +424,9 @@ function! s:dosurround(...) " {{{1 exe 'norm '.strcount.'[/d'.strcount.']/' else exe 'norm d'.strcount.'i'.char + " One character backwards + call search('.','bW') endif - "exe "norm vi".char."d" let keeper = getreg('"') let okeeper = keeper " for reindent below if keeper == "" @@ -436,8 +437,6 @@ function! s:dosurround(...) " {{{1 let oldline = getline('.') let oldlnum = line('.') if char ==# "p" - "let append = matchstr(keeper,'\n*\%$') - "let keeper = substitute(keeper,'\n*\%$','','') call setreg('"','','V') elseif char ==# "s" || char ==# "w" || char ==# "W" " Do nothing @@ -450,32 +449,23 @@ function! s:dosurround(...) " {{{1 call setreg('"','/**/',"c") let keeper = substitute(substitute(keeper,'^/\*\s\=','',''),'\s\=\*$','','') else - exe "norm! da".char + exe "norm da".char endif let removed = getreg('"') let rem2 = substitute(removed,'\n.*','','') let oldhead = strpart(oldline,0,strlen(oldline)-strlen(rem2)) let oldtail = strpart(oldline, strlen(oldline)-strlen(rem2)) let regtype = getregtype('"') - if char == 'p' - let regtype = "V" - endif if char =~# '[\[({