gpt4 book ai didi

python - 在 vim 和 python virtualenv 中使用 taglist 的 ctags

转载 作者:太空狗 更新时间:2023-10-30 01:16:51 27 4
gpt4 key购买 nike

我在我的项目中使用了 virtualenvdjango,我正试图找到一种更有效的方式来浏览 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com