を使用することもできます:exe
が、これは使用が非常に面倒であり、いくつかのことを回避する必要があります。
以前は自分のパス修正機能を使っていました。それは次のように見えました:
exe 'set rtp+='.lh#path#fix(somevariable)
" with standard tools, may be it'd be (untested)
exe 'set rtp+='.escape(somevariable, ' \|,')
let &rtp = expression
本当に友達です。
しかし、実際には、これはとはうまく機能しません+=
。それが私がlh#path#munge()
別の機能に依存することを思いついた理由lh#list#add_if_new()
です。厳密に言えばset +=
、によってエミュレートされlh#list#add_if_new()
ます。munge()
存在するパス名、または実際に一致するグロビングパターンを保持します。
" Function: lh#path#munge(pathlist, path) {{{3
function! lh#path#munge(pathlist, path) abort
if type(a:pathlist) == type('str')
let pathlist = split(a:pathlist, ',')
return join(lh#path#munge(pathlist, a:path), ',')
else
" if filereadable(a:path) || isdirectory(a:path)
if ! empty(glob(a:path)) " support '/**' for &tags
call lh#list#push_if_new(a:pathlist, a:path)
endif
return a:pathlist
endif
endfunction
" Function: lh#list#push_if_new(list, value) {{{3
function! lh#list#push_if_new(list, value) abort
if index(a:list, a:value) < 0
call add (a:list, a:value)
endif
return a:list
endfunction
これらはlh-vim-libで定義および保守されています。