我每天都在使用python,並且需要我的本地項目和在我的虛擬環境中找到的每個python模塊/ egg的索引如何使用2個不同的位置爲vim生成一個.ctags文件?
以下是我希望看到的改進版的一半。目前我可以在重繪命令之前做一個或另一個。使用這種方法,我最終將在每個項目的根目錄中創建一個.ctags文件,vim可以快速輕鬆地通過類名稱/方法名/ etc進行查找。
有沒有辦法將這2個exe行組合成一行,仍然只產生一個索引文件?
預先感謝您
set tags=./.ctags,.ctags;
" re-index the ctags file
map <leader>ri :call RenewTagsFile()<cr>
" search through the indexed ctags file for any class/method/etc
map <leader>fs :FufTag<CR>
function! RenewTagsFile()
exe 'silent !ctags -Rf .ctags ' . system('python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"')''
exe 'silent !ctags -Rf .ctags --extra=+f --exclude=.git --languages=-javascript 2>/dev/null'
exe 'redraw!'
endfunction
UPDATE
任何人誰可能在將來我能夠使用-a標誌(所以更新標記文件的功能附加在這個問題絆倒會看起來像這樣)
function! RenewTagsFile()
exe 'silent !ctags -Rf .ctags ' . system('python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"')''
exe 'silent !ctags -a -Rf .ctags --extra=+f --exclude=.git --languages=-javascript 2>/dev/null'
exe 'redraw!'
endfunction
難道這些意見Linux和OSX友好嗎?如上所示,我發現呼叫系統建議在Ubuntu 12.04上不起作用。我在Ubuntu上使用我的vimfiles,並在夜間使用OSX,所以我更喜歡兩種都適用的東西。此外,我仍然看到「項目最後一個贏」行爲發生在項目底部的ctags附近,但我的virtualenv索引死亡(第一個被調用)。 –
看起來像在第二個ctags中添加-a標誌將允許我將這兩個索引保存在單個ctags文件中。 'ctags -a -Rf .ctags .....' –
@ToranBillups我不知道任何情況,當'!'工作和等效的'調用system()'調用不。第一行可以在我的系統上運行(Gentoo linux)。注意:'system()'不會擴展''''''''和''''。根本沒有交易:0。我在這裏看不到特別的角色。 1.你不能可靠地使用這些特殊字符(包含特殊字符的名字會在使用'%'擴展時破壞調用,但在顯式使用'shellescape()'時不會)。 – ZyX