我正在尝试使用Indexer(vimscript #3221)来索引使用project.vim(vimscript #69)创建的特定项目的文件。正如插件的文档所说,如果我没有在〜/ .vimrc中设置g:indexer_projectsSettngsFilename
变量,它默认使用〜/ .vimprojects文件。但我希望能够指定项目而不在〜/ .vimrc中设置该变量(即,我想以更本地的方式进行)。
我尝试在_vimrc_local.vim中设置g:indexer_projectsSettngsFilename
,在Vim启动后手动设置它,在设置变量后重新获取插件(通过运行:so
),运行{ {1}}之后。在任何一种情况下,插件都不会为项目创建索引文件。
那么如何让Indexer在Vim会话期间更改其项目呢?
答案 0 :(得分:1)
Indexer插件具有依赖关系:Vimprj,它管理不同项目的选项:正是您需要的。
Indexer repository在doc/examples
目录下有一些示例。例如,检查doc/examples/vimprj_indexer_files
。
简而言之,在项目的根目录中,您需要创建.vimprj
目录,然后在项目目录下打开某个文件时,将获取所有.vimprj/*.vim
个文件,$INDEXER_PROJECT_ROOT
变量将设置为项目的路径(比.vimprj
目录高一级)。
我通常也将.indexer_files
放在.vimprj
目录中,并从.vimprj/my.vim
文件中引用它:
" get path to ".vimprj" folder
let s:sPath = expand('<sfile>:p:h')
" specify our ".vimprj/.indexer_files"
let g:indexer_indexerListFilename = s:sPath.'/.indexer_files'
我可以这样推荐.indexer_files
到$INDEXER_PROJECT_ROOT
:
[my_project]
option:ctags_params = "--langmap=c:.c.h --languages=c"
$INDEXER_PROJECT_ROOT
有关详情,请参阅文章:Vim: convenient code navigation for your projects,该文章详细解释了Indexer + Vimprj的用法。