我在我的项目中使用了 virtualenv
和 django
,我正试图找到一种更有效的方式来浏览 django 源代码。
按照此处的建议 - Tools to help developers reading class hierarchy faster - 我通过 ctags 设置了自己
sudo port -v install ctags
并通过 https://github.com/vim-scripts/taglist.vim 安装了 vim 插件 taglist
不幸的是,当我试图通过Ctrl+]“跳转”查看类时,ctags
似乎无法找到我的django 类。
有什么建议可以让 ctags
读取位于我的 virtualenv 中的 python 源代码吗?
更新
通过进一步的实验,我意识到 ctags
是某种“索引”程序,它解析给定的目录/文件/文件并获取所有关键字(类名、方法名、函数名等)它找到并将其写入文件。这个文件可以被更新并且 vim 插件 taglist
基本上从它读取来知道当我在一个类上执行 Ctrlt 时将我发送到哪里/方法/函数名称。
所以我想出了一个临时的手动解决方案,我在我的 vim 中执行,如下所示:-
:set tags=~/mytags
:! ctags -R -o ~/mytags ~/.virtualenvs/myprojectname
第一个命令告诉我的 vim/taglist 我的“索引”结果存储在哪里。
第二个命令通过递归搜索(-R
)将索引结果写入~/mytags
文件~/.virtualenvs/myprojectname
这是可行的,但如果我碰巧处于不同的 virtualenv
环境中,这是一种维护标签和标签更改的非常手动的方法。
有人知道管理此 ctags
进程的自动化方法吗?
最佳答案
There are many "automatic tags generation" plugins available.
TagList 不会从您手动/自动生成的任何 tags
中读取:它会调用 ctags
本身并直接读取其输出。
您可能还想阅读 :help autocommand
。您可以设置自动命令以在写入时重新生成您的标签
,如下所示:
autocmd BufWritePost,FileWritePost *.py :silent! !ctags -R -o ~/mytags ~/.virtualenvs/myprojectname
关于python - 在 vim 和 python virtualenv 中使用 taglist 的 ctags,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10362085/