我的Desktop
中有三个文件:foo.py
,foo.tex
和foo.pdf
。我想使用globpath()
函数来获取python
和tex
文件的完整路径,但不能获取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)')
答案 0 :(得分:3)
glob[path]()
个函数仅支持一组有限的:help wildcards
。你不能像正则表达式那样进行交替。相反,只需多次调用该函数并连接结果:
:echo globpath('C:\Users\Pedro\Desktop', 'foo.tex') . globpath('C:\Users\Pedro\Desktop', 'foo.py')
最近的Vim版本支持, {list}
标记,您可以使用该标记globpath()
返回列表(与+
而不是.
连接)。
请注意,没有实际通配符的示例是愚蠢的;如果您只需要将filespec转换为绝对形式,最好使用fnamemodify(path, ':p')
。