跳过 exuberant ctags 中的 Python “import” 语句

31

如果我有两个文件

文件 a.py:

class A():
    pass

文件 b.py:

from a import A
b = A()

当我在vim中使用ctags并按下Ctrl+]时,它会将我重定向到导入语句而不是类定义。在这段代码中一切都正常:

文件a.py:

class A():
    pass

文件 b.py:

from a import *
b = A()

1
我无法告诉你如何修复ctags的问题,但你可以尝试使用cscope或pyscope作为替代品。它们与vim集成得很好。 - Seamus Connor
pycscope看起来相当不错。很好。+1 - chiggsy
2个回答

58
你可以将以下行添加到你的 ~/.ctags 文件中。

--python-kinds=-i

这将使 ctags 跳过索引 import 语句。要查看可以启用/禁用的其他选项,请运行以下命令:

ctags --list-kinds=python


这很不错!不幸的是,仅仅在命令后面添加--python-kinds=-i并不能解决问题。 - BiBi

1

我使用类似以下的映射,它允许我在给定标签有多个匹配项时进行选择:

nnoremap <C-]> :execute 'tj' expand('<cword>')<CR>zv

此外,查看ctags的man页面,你可能会发现有一种方法可以禁用这种标记。

g<C-]> 不就是这个功能吗? - Chronial

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接