代码: 全选
let lst=split(globpath(&runtimepath, "lib/".a:A."*"), "\n")
遍历一遍列表,判断其是否为目录,是则追加 / 。
好麻烦,还要遍历,费时!
是否有简单方法,能直接在 globpath() 那里搞定?
-----------------------------------------
代码: 全选
fun s:Lib_CmdComp(A, L, P)
if a:L=~'\m^\s*Lib\s\+path\s\+'
let lst=split(globpath(&runtimepath, "lib/".a:A."*"), "\n")
" 遍历一遍自己搞
let i=0
while i<len(lst)
if isdirectory(lst[i])
let lst[i].='/'
endif
let i+=1
endwhile
let i=0
while i<len(lst)
let lst[i]=matchstr(lst[i], '\m\/\zs'.a:A.'[^\/]*\/\?$')
let i+=1
endwhile
elseif a:L=~'\m^\s*Lib\s\+'
let lst=["list", "path"]
let i=0
while i<len(lst)
let lst[i]=matchstr(lst[i], '\m^'.a:A.'.*$')
let i+=1
endwhile
endif
return lst
endfun