diff --git a/plugin/surround.vim b/plugin/surround.vim index 05b1c5c..18a4935 100644 --- a/plugin/surround.vim +++ b/plugin/surround.vim @@ -127,7 +127,7 @@ endfunction function! s:wrap(string,char,type,...) let keeper = a:string let newchar = a:char - let s:tag = "" + let s:input = "" let type = a:type let linemode = type ==# 'V' ? 1 : 0 let special = a:0 ? a:1 : 0 @@ -185,10 +185,10 @@ function! s:wrap(string,char,type,...) if dounmapb silent! cunmap > endif - let s:tag = tag + let s:input = tag if tag != "" let tag = substitute(tag,'>*$','','') - let s:tag = tag . '>' + let s:input = tag . '>' let before = '<'.tag.'>' if tag =~ '/$' let after = '' @@ -217,6 +217,7 @@ function! s:wrap(string,char,type,...) elseif newchar ==# 'f' || newchar ==# 'F' let fnc = input('function: ') if fnc != "" + let s:input = fnc."\" let before = substitute(fnc,'($','','').'(' let after = ')' if newchar ==# 'F' @@ -226,6 +227,7 @@ function! s:wrap(string,char,type,...) endif elseif newchar ==# "\" let fnc = input('function: ') + let s:input = fnc."\" let before = '('.fnc.' ' let after = ')' elseif idx >= 0 @@ -454,7 +456,7 @@ function! s:dosurround(...) " {{{1 if newchar == "" silent! call repeat#set("\Dsurround".char,scount) else - silent! call repeat#set("\Csurround".char.newchar.s:tag,scount) + silent! call repeat#set("\Csurround".char.newchar.s:input,scount) endif endfunction " }}}1 @@ -527,9 +529,9 @@ function! s:opfunc(type,...) " {{{1 let &selection = sel_save let &clipboard = cb_save if a:type =~ '^\d\+$' - silent! call repeat#set("\Y".(a:0 && a:1 ? "S" : "s")."surround".char.s:tag,a:type) + silent! call repeat#set("\Y".(a:0 && a:1 ? "S" : "s")."surround".char.s:input,a:type) else - silent! call repeat#set("\SurroundRepeat".char.s:tag) + silent! call repeat#set("\SurroundRepeat".char.s:input) endif endfunction