在exuberant ctags中跳过python的"import"语句

31 投票
2 回答
5031 浏览
提问于 2025-04-16 03:31

如果我有两个文件

文件 a.py:

class A():
    pass

文件 b.py:

from a import A
b = A()

当我在 vim 中使用 ctags 并按下 Ctrl+] 时,它把我带到了 import 语句,而不是类的定义。在这段代码中一切正常:

文件 a.py:

class A():
    pass

文件 b.py:

from a import *
b = A()

2 个回答

1

我使用了一个类似下面的映射,这样我就可以在某个标签有多个匹配项时选择使用哪个:

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

另外,查看一下ctags的手册,你可能会发现有办法禁用这种类型的标签。

58

你可以在你的 ~/.ctags 文件中添加以下这一行。

--python-kinds=-i

这样做可以让 ctags 跳过对导入语句的索引。如果你想看看还有哪些其他的选项可以开启或关闭,可以使用:

ctags --list-kinds=python

撰写回答