我正在寻找一个示例,该示例如何在vim脚本中使用findfile函数来向上递归搜索文件,特别是使用通配符。
每当我将通配符作为第一个功能参数的一部分时,这似乎都不起作用。
例如,具有以下目录结构:
~/MyProject/
Test.sln
src/
Test.cs
如果我运行以下功能,则在将pwd设置为〜/MyProject/src的文件Test.cs中编辑时
function! Test()
let a = findfile("*.sln", ".;")
echo a
endfunction
findfile似乎什么也不返回。但是,如果我修改该功能以如下方式删除名片,则:
function! Test()
let a = findfile("Test.sln", ".;")
echo a
endfunction
它确实达到了我的期望。
我已经在ubuntu和Windows上对此进行了测试,并且在两者上都看到了相同的行为。我在这里做错什么了吗,还是findfile不支持通配符?缺少对通配符的支持似乎是一个相当奇怪的遗漏。看来我在这里一定做错了。
最佳答案
如果您使用通配符,那么我想寻找的是glob()
和/或globpath()
函数。参见:h glob()
和:h globpath()
。