Ich versuche, eine Variable in einem Befehlsaufruf zu expandieren. Hier ist, was ich in meinem .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
In der :
Eingabeaufforderung, die `=flist`
Syntax scheint zu funktionieren (oder zumindest funktionierte sie mit einer w:
Variable), sondern in der .vimrc
Datei ist das nicht der Fall - TlistAddFiles wird nur die Zeichenkette `=flist`
.
Dank der Antworten von Andrew Barnett und Mykola Golubyev habe ich jetzt diese Lösung gefunden, die zu funktionieren scheint. Gibt es keinen besseren Weg?
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