把下面的功能在你的.vimrc
:
function! FindProjectRoot(lookFor)
let pathMaker='%:p'
while(len(expand(pathMaker))>1)
let pathMaker=pathMaker.':h'
let fileToCheck=expand(pathMaker).'/'.a:lookFor
if filereadable(fileToCheck)||isdirectory(fileToCheck)
return expand(pathMaker)
endif
endwhile
return 0
endfunction
该函数将当前文件向上搜索包含一个文件或文件夹指定名称,并返回路径的父文件夹。这样的话,你可以把一个project
文件在项目的根文件夹,发送FindProjectRoot('project')
作为参数传递给命令-T
甚至更好 - 调用文件project.vim
,并用它来加载特定的设置和键绑定每个项目。
编辑 该功能只在Linux上运行。使用此功能来代替:
function! FindProjectRoot(lookFor)
let pathMaker='%:p'
while(len(expand(pathMaker))>len(expand(pathMaker.':h')))
let pathMaker=pathMaker.':h'
let fileToCheck=expand(pathMaker).'/'.a:lookFor
if filereadable(fileToCheck)||isdirectory(fileToCheck)
return expand(pathMaker)
endif
endwhile
return 0
endfunction
是否有可用于识别的主要项目目录中的任何迹象?像目录名称中的特定模式,或仅存在于每个项目的主目录中的文件/目录? –
不,但我可以做出改变,以便有例如。一个名为root的文件。 我想这可以用于递归搜索? –