Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File Vim:按一个目录限制向上搜索_File_Search_Vim_Find - Fatal编程技术网

File Vim:按一个目录限制向上搜索

File Vim:按一个目录限制向上搜索,file,search,vim,find,File,Search,Vim,Find,我有以下文件结构: . ├── main └── src └── main.c 如果我正在编辑文件main.c并使用命令 :echo findfile(expand('%:t:r'),";") 维姆打印主图像。但是如果main不存在,那么findfile将继续向上搜索,直到根目录/为止,这可能需要很长时间 有没有办法将目录限制为一个目录?我正在寻找类似于**2的东西,它将最大向下搜索级别设置为2。虽然您不能将向上搜索限制为一个目录,但您可以指定起始路径,相对于当前位置向上搜索一个目录

我有以下文件结构:

.
├── main
└── src
    └── main.c
如果我正在编辑文件main.c并使用命令

:echo findfile(expand('%:t:r'),";")
维姆打印主图像。但是如果main不存在,那么findfile将继续向上搜索,直到根目录/为止,这可能需要很长时间


有没有办法将目录限制为一个目录?我正在寻找类似于**2的东西,它将最大向下搜索级别设置为2。

虽然您不能将向上搜索限制为一个目录,但您可以指定起始路径,相对于当前位置向上搜索一个目录,然后只向下搜索一个目录:

:echo findfile(expand('%:t:r'),"../**1")

这适用于示例问题。更高的向上目录../../../../../**4指定起来会很繁琐,并且会有不利的影响,即以相反的顺序自上而下而不是自下而上进行搜索,尽管我不确定是否有更好的方法

要将向上搜索级别限制为1级,我最终使用了扩展“%:p:h”:

或者使用getcwd:

execute "echo findfile(expand('%:t:r'),';".expand('%:p:h')."')"
execute "echo findfile(expand('%:t:r'),';".getcwd()."')"