找到vim的virtualenv当前包目录

时间:2012-07-07 03:21:18

标签: python vim virtualenv ctags

我希望能够通过ctags从我的virtualenv库中获取源代码但是为了能够做到这一点我需要知道哪个virtualenv当前是活动的,所以例如,我在.vimrc中添加了这个代码,它附加了django到我的ctags索引:

nnoremap <F7> :!ctags -R --python-kinds=-i -a ~/.virtualenvs/MYPROJECT/lib/python2.7/site-packages/django/*<CR>

而不是硬编码路径,我希望它做的事情如下:

nnoremap <F7> :!ctags -R --python-kinds=-i -a CURRENT_PROJECT_PACKAGES_PATH/django/*

所以我可以从我正在处理的当前项目中索引包。

2 个答案:

答案 0 :(得分:1)

您可以使用$ VIRTUAL_ENV到达您的图书馆,所以它就是这样的

nnoremap <F7> :!ctags -R --python-kinds=-i -a $VIRTUAL_ENV/lib/python2.7/site-packages/django/*

答案 1 :(得分:0)

使用类似let g:current_proj = "~/.virtualenvs/MYPROJECT/lib/python2.7/site-packages/"的变量,然后使用exe:

读取它
nnoremap <F7> :exe "!ctags -R --python-kinds=-i -a " . g:current_proj . "django/*"<cr>

或者您可以直接使用环境变量:

nnoremap <F7> :exe "!ctags -R --python-kinds=-i -a " . $CURRENT_PROJECT_PACKAGES . "django/*"<cr>