vim和python virtualenv中带有标签列表的标签

问题描述 投票:5回答:1

我在我的项目中使用virtualenvdjango,并且我试图找到一种更有效的浏览Django源代码的方法。

如此处所建议-Tools to help developers reading class hierarchy faster-我通过以下方式设置了ctags:>

sudo port -v install ctags

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

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

关于如何获取ctags以读取位于virtualenv中的python源代码的任何建议?

更新

[经过进一步的实验,我意识到ctags是某种“索引”程序,它通过给定的目录/文件/文件进行解析,并捕获找到并写入的所有关键字(类名,方法名,函数名等)。它成一个文件。该文件可以更新,并且vim插件taglist会从中读取内容,以了解在对类/方法/函数名称进行Ctrl t

时将我发送到哪里。

所以我想出了一个临时的手动解决方案,可以在我的vim中执行,就像这样:-

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

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

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

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

有人知道管理该ctags流程的自动化方法吗?

我在我的项目中使用virtualenv和django,我试图找到一种更有效的方式来浏览django源代码。如此处所建议-帮助开发人员更快地阅读类层次结构的工具-我得到了...

There are many "automatic tags generation" plugins available.

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

此外,您可能需要阅读:help autocommand。您可以设置自动命令来重新生成您的tags,如下所示:

autocmd BufWritePost,FileWritePost *.py :silent! !ctags -R -o ~/mytags ~/.virtualenvs/myprojectname
        
python vim virtualenv ctags taglist
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.