我使用Vim+Ctags来编写Python,我的问题是Vim经常跳转到标签的导入,而不是定义。这是一个常见问题,已经在此处的一些帖子中得到解决。
this post显示如何从标签文件中删除导入。这工作得很好,除了有时在导入中添加标签很有用(例如,当您想要列出导入类/函数的所有位置时)。
this post展示如何在不从标签文件中删除导入的情况下获取定义。这基本上就是我到目前为止所做的事情(只是将 :tjump 重新映射到单个击键)。但是,您仍然需要导航出现的标签列表以查找定义条目。
如果可以用一个和弦(例如 )告诉 Vim“得到定义”,那就太好了。 Exuberant Ctags 使用条目类型来注释标签条目(例如,c 表示类,i 表示导入)。有谁知道是否有办法让 Vim 使用这些注释,这样我就可以说“转到第一个不是 i 类型的标签”?
最佳答案
不幸的是,Vim 本身无法根据某些上下文进行推理并跳转到导入或定义:在 tags
中搜索标签时文件中,Vim 在第一个匹配处停止无论它是什么。 A plugin可能有帮助,但我不知道这样的事情。
而不是 <C-]>
或:tag foo
,您可以使用g]
或:ts foo
它会向您显示匹配列表(包含类型和每个匹配行的预览),而不是跳到第一个匹配。这样,您就可以准确地告诉 Vim 您想去哪里。
关于python - 让 Vim 了解 python 的 ctag 类型注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15219065/