5

我在我的项目中使用virtualenvanddjango我试图找到一种更有效的方式来浏览 django 源代码。

正如这里所建议的 -帮助开发人员更快地阅读类层次结构的工具- 我通过 ctags 对自己进行了设置

sudo port -v install ctags

taglist并通过https://github.com/vim-scripts/taglist.vim安装了 vim 插件

不幸的是,当我试图通过“跳转”查看课程时,似乎ctags无法找到我的 Django 课程Ctrl+]

有什么建议可以让我ctags阅读位于我的 virtualenv 中的 python 源代码吗?

更新

通过进一步的实验,我意识到这ctags是某种“索引”程序,它解析给定的目录/文件/文件并获取它找到的所有关键字(类名、方法名、函数名等)并将其写入文件。这个文件可以更新,vim 插件taglist基本上会从它读取,以知道当我Ctrlt对类/方法/函数名称执行操作时将我发送到哪里。

所以我想出了一个临时和手动的解决方案,我在我的 vim 中执行,如下所示:-

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

第一个命令告诉我的 vim/taglist 我的“索引”结果存储在哪里。

~/mytags第二个命令通过递归搜索 ( -R)将索引结果写入文件~/.virtualenvs/myprojectname

这可行,但如果我碰巧在不同的virtualenv环境中,这是维护标签和标签更改的一种非常手动的方法。

有谁知道管理此ctags过程的自动化方法?

4

1 回答 1

5

有许多“自动标签生成”插件可用。

TagList 不会从tags您手动/自动生成的任何内容中读取:它会调用ctags自身并直接读取其输出。

您可能还想阅读:help autocommand. 您可以设置自动命令以重新生成您tags的写入,如下所示:

autocmd BufWritePost,FileWritePost *.py :silent! !ctags -R -o ~/mytags ~/.virtualenvs/myprojectname
于 2012-04-28T11:06:36.303 回答