1

我用Vim+Ctags写Python,我的问题是Vim经常跳转到一个标签的导入,而不是定义。这是一个常见问题,已在此处的几篇文章中解决。

这篇文章展示了如何从标签文件中删除导入。这很有效,除了有时在导入中使用标签很有用(例如,当您想要列出已导入类/函数的所有位置时)。

这篇文章展示了如何在不从标签文件中删除导入的情况下获得定义。到目前为止,这基本上是我一直在做的事情(只是将 :tjump 重新映射到单个击键)。但是,您仍然需要浏览出现的标签列表以查找定义条目。

如果可以只用一个键和弦(例如 )告诉 Vim “得到定义”,那就太好了。Exuberant Ctags 用条目类型注释标签条目(例如,c 表示类,i 表示导入)。有谁知道是否有办法让 Vim 使用这些注释,这样我就可以说“转到第一个不是 i 类型的标签”之类的话?

4

1 回答 1

1

不幸的是,Vim 本身无法进行推理业务并根据某些上下文跳转到导入或定义:当在tags文件中搜索标记时,Vim 会在第一个匹配项处停止,无论它是什么插件可能会有所帮助,但我不知道这样的事情。

代替<C-]>or :tag foo,您可以使用g]or:ts foo向您显示匹配列表(带有种类和每个匹配行的预览),而不是跳转到第一个。这样,就可以准确地告诉 Vim想去哪里。

于 2013-03-05T09:00:40.757 回答