如何在Vim会话期间更改Indexer使用的项目?

时间:2015-08-05 03:22:54

标签: vim vim-plugin

我正在尝试使用Indexer(vimscript #3221)来索引使用project.vim(vimscript #69)创建的特定项目的文件。正如插件的文档所说,如果我没有在〜/ .vimrc中设置g:indexer_projectsSettngsFilename变量,它默认使用〜/ .vimprojects文件。但我希望能够指定项目而不在〜/ .vimrc中设置该变量(即,我想以更本地的方式进行)。

我尝试在_vimrc_local.vim中设置g:indexer_projectsSettngsFilename,在Vim启动后手动设置它,在设置变量后重新获取插件(通过运行:so),运行{ {1}}之后。在任何一种情况下,插件都不会为项目创建索引文件。

那么如何让Indexer在Vim会话期间更改其项目呢?

1 个答案:

答案 0 :(得分:1)

Indexer插件具有依赖关系:Vimprj,它管理不同项目的选项:正是您需要的。

Indexer repositorydoc/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的用法。