Vim: 使用globpath获取不同的文件类型

Vim: use globpath to obtain different filetypes

我的 Desktop 中有三个文件:foo.pyfoo.texfoo.pdf。我想使用 globpath() 函数获取 pythontex 文件的完整路径,而不是 pdf 文件。我知道我能做到

:echo globpath('C:\Users\Pedro\Desktop', 'foo.tex')

:echo globpath('C:\Users\Pedro\Desktop', 'foo.py')

获取 tex 或 python 完整路径。如何获取这两个文件的完整路径?即我正在寻找类似

的东西
:echo globpath('C:\Users\Pedro\Desktop', 'foo.(tex|py)')

glob[path]() 函数仅支持有限的一组 :help wildcards。您不能像使用正则表达式那样进行交替。相反,只需多次调用函数并连接结果:

:echo globpath('C:\Users\Pedro\Desktop', 'foo.tex') . globpath('C:\Users\Pedro\Desktop', 'foo.py')

最近的 Vim 版本支持 , {list} 标志,您可以用它制作 globpath() return 列表(用 + 连接而不是 .).


请注意,您的示例没有实际的通配符是愚蠢的;如果您只需要将 filespec 转换为绝对形式,您最好使用 fnamemodify(path, ':p').