コマンド呼び出しで展開された変数を取得しようとしています。ここに私が持っているものがあります.vimrc
:
command! -nargs=1 -complete=dir TlAddPm call s:TlAddPm(<f-args>)
function! s:TlAddPm(dir)
let flist = system("find " . shellescape(a:dir) . " -type f -name '*.pm' | sort")
TlistAddFiles `=flist`
endfun
:
プロンプトでは、構文は機能している`=flist`
ように見えます (または、少なくともw:
変数では機能していました) が、.vimrc
ファイルでは機能しません — TlistAddFiles には string が渡されるだけ`=flist`
です。
Andrew Barnett と Mykola Golubyev の回答のおかげで、私はこれを手に入れました。もっと良い方法はありませんか?
command! -nargs=1 -complete=dir TlAddPm call s:TlAddPm(<f-args>)
function! s:TlAddPm(dir)
let findres = system("find " . shellescape(a:dir) . " -type f -name '*.pm' | sort")
let flist = []
for w in split(findres, '\n')
let flist += [ fnameescape(w) ]
endfor
exe "TlistAddFiles " . join(flist)
endfun