引数を取得するためです。私は、引数を分割しb:list
変数に入れて機能GetArguments()
を作成することで、終わった:私は最終的に自分自身の関数を作ることによって終わった
function! GetArguments()
let l:str=getline(".")
let l:str=substitute(l:str,'^\(\s\|\w\)*\("\|[\|(\|<\|{\)','','')
let l:str=substitute(l:str,'\("\|]\|)\|>\|}\)\s*\({\|;\)*\s*$','','')
let l:i=''
let l:oparen=0
let l:Arg=""
let b:list=[]
for l:i in split(l:str,'\zs')
if matchstr(l:i , '\("\|[\|(\|<\|{\)') != ''
let l:oparen+=1
elseif matchstr(l:i , '\("\|]\|)\|>\|}\)') != ''
let l:oparen-=1
endif
if matchstr(l:i, ',\|;') == ''
let l:Arg=l:Arg.l:i
elseif matchstr(l:i, ',\|;') != '' && l:oparen != 0
let l:Arg=l:Arg.l:i
elseif matchstr(l:i, ',\|;') != '' && l:oparen == 0
if strlen(l:Arg) != 0
call add(b:list,l:Arg)
endif
let l:Arg=""
endif
endfor
if strlen(l:Arg) != 0
call add(b:list,l:Arg)
endif
endfunction
! +1 –
@メキシコ、あなたは類似の問題を持つ他の人を助けるためにあなたの機能を投稿に入れたいかもしれません –
@Rincker現時点で私が欲しいものを実際に行いましたが、改善が必要な単純な機能です! –