2012-07-07 50 views
1

的virtualenv當前包目錄我希望能夠通過CTAGS從我的virtualenv庫到達源代碼,但要能做到這一點,我需要知道哪的virtualenv是目前活躍,因此,例如,我有這樣的代碼在我的vimrc其中追加的Django我的ctags指數:找到VIM

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/* 

,所以我可以從當前項目索引包我工作。

回答

1

你可以使用$ VIRTUAL_ENV到你庫,所以它會是這樣的

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

這很有趣,它是多麼簡單,我從來沒有想過這樣做。非常感謝! – Hassek 2012-10-09 15:26:01

+0

很高興幫助:) – 2012-10-10 06:18:40

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> 
+0

我想要做的不是硬編碼我的路徑ite-packages文件夾,因爲它取決於我在我的virtualenv上工作的項目。也許我應該澄清的是'$ CURRENT_PROJECT_PACKAGES'變量並沒有真正存在呵 – Hassek 2012-07-07 06:29:22

+0

可以在這些解決方案的實時更新變量或環境變量。例如,你可以做':讓G:current_proj = 「/路徑/到/不同/ virtualenv中」'Vim裏面,或者你可以':出口$ CURRENT_PROJECT_PACKAGES = 「/路徑/到/ virtualenv中」'。當您更改virtualenvs時,您可能必須編寫腳本來更改環境變量。 – Conner 2012-07-07 06:32:52

+0

如果你不想創建'$ CURRENT_PROJECT_PACKAGES'環境變量,那麼也許你想看看像一個插件[命令-T(https://github.com/wincent/Command-T)或[FuzzyFinder ](https://github.com/vim-scripts/FuzzyFinder)。 – Conner 2012-07-07 06:34:26