2012-04-28 22 views
4

我在我的項目中使用virtualenvdjango,我試圖找到更有效的方式來瀏覽django源代碼。在vim和python virtualenv中使用taglist的ctags

如這裏建議 - Tools to help developers reading class hierarchy faster - 我給自己買了通過

sudo port -v install ctags 

建立與CTAGS並通過https://github.com/vim-scripts/taglist.vim

不幸的是安裝vim的插件taglist,似乎ctags無法找到我的Django的類時我試圖通過「跳轉」查看課程。Ctrl +]

任何建議如何我可以得到ctags閱讀位於我virtualenv的Python源代碼?

最新通報

隨着進一步的實驗,我意識到ctags是某種「索引」程序,它解析通過給定的目錄/文件/文件,並抓住所有的關鍵字(類名,方法名,函數名稱等),它會查找並將其寫入文件。這個文件可以被更新,並且vim插件taglist基本上從它讀取以知道我在哪裏發送給我當我做Ctrlt關於類/方法/函數名。

於是我想出了一個臨時的,手動解決方案,這是我執行我的VIM,就像這樣: -

:set tags=~/mytags 
:! ctags -R -o ~/mytags ~/.virtualenvs/myprojectname 

第一個命令告訴我的vim /標記列表在我的「索引」的結果被存儲。

第二個命令通過搜索遞歸(-R)下來~/.virtualenvs/myprojectname

這工作寫入索引結果爲~/mytags文件,但維持標籤非常手動的方式,如果我碰巧在不同virtualenv標籤更改環境。

有誰知道自動化的方式來管理這個ctags過程?

回答

4

There are many "automatic tags generation" plugins available.

標記列表不會從任何tags閱讀,有手動/自動生成:它調用ctags本身並直接讀取其輸出。您也可以閱讀:help autocmmand。你可以設置自動命令重新生成你的tags這樣寫:

autocmd BufWritePost,FileWritePost *.py :silent! !ctags -R -o ~/mytags ~/.virtualenvs/myprojectname 
+0

是你的鏈接指向一些地方?我得到了404。關於你的示例自動命令,它有點複雜,因爲'vim'必須檢測我打開特定文件時使用的是哪個python virtualenv,我不確定是否有方法來自動檢測virtualenv項目文件「所屬」。 – 2012-04-28 11:20:44

+1

鏈接固定。另請參閱[此插件](https://github.com/jmcantrell/vim-virtualenv),它應該會讓處理virtualenv更容易。 – romainl 2012-04-28 12:46:42