vim 处理universal-ctags,python内置和诗歌

pu82cl6c  于 2023-05-17  发布在  Python
关注(0)|答案(1)|浏览(128)

我使用universal-ctags在我的项目中定义的对象之间导航,它工作得很好。然而,我正在努力寻找如何将python内置对象和包依赖项包含到universal-ctags的范围中。在它的顶部,我使用了poetry(不是我的选择),它将依赖项定位在项目目录之外的其他地方。(如果我的项目是.,则相关的python依赖项是../../../.cache/pypoetry/....
换句话说,我希望<C-]>在任何情况下都能工作,无论我是针对自定义Python对象,Python内置对象(joinchoicelru_cache等...),依赖对象(来自Django的Model,来自DRF的ViewSet等...)
有没有办法指定universal-ctags来获取所有这些额外的引用?
谢谢!
我以为有一个选项存在,以添加路径,包括additionnal看看,但我没有找到任何关于这一点。
我在Debian 11上使用universal-ctags,vim和

yc0p9oo0

yc0p9oo01#

你可以缝在一起一个班轮这样做你。
正如romainl所评论的,您可以传递多个路径来生成单个标记文件。这就是答案。不过,我们可以加一些绒毛。
python标准库模块可以在sys.path中找到,例如/usr/lib/python3.9在我的Debian盒子上。我假设这很少改变(只有当您升级Python安装时)。似乎不值得将其自动化。
Poetry的virtualenv更不稳定,所以应该自动找到路径。根据this poetry issue中的信息,您可以使用poetry show -v获得virtualenv的路径(以及其他一些我们不关心的输出)。
用一点bash glue把它放在一起,我们得到下面的一行程序:

ctags -R . /usr/lib/python3.9 $(poetry show -v | head -n1 | cut -d':' -f2)

您可能希望将其转换为一个shell脚本,并追加"$@"以传递其他选项。

相关问题