如何将Python插件添加到Gnu Global
我的gtags版本是 gtags - GNU GLOBAL 5.9.2
我在这里下载了一个用于Gnu Global的Python插件 这里
把globalrc.example复制到~/.globalrc
把script/python_global_tags.py复制到~/bin/python_global_tags.py,这个路径在我的$PATH里
在一个包含Python文件的目录里输入:“gtags”
没有报错
然后输入:“global -f test.py”
没有任何输出
但是“global -g”可以正常工作,我在想这是不是只是grep的一个包装
我的问题是:
- 用Python自己写插件真的可行吗?
- 有没有关于配置~/.globalrc的教程?官方站点 这里提到的内容太少了。
非常感谢,
gnu global越来越流行,但支持的语言还是太少了。
2 个回答
0
根据我的理解,GNU Global 目前还不支持 Python。它的主页上写着:
支持 C、C++、Yacc、Java、PHP4 和汇编语言。(定义和参考)
而且这篇帖子基本上说我们需要用 C 语言写一个插件。由于 Global 不支持 Python,我又回到了老牌的Exuberant Ctags:
ctags -e -R .
这个工具工作得很好,但你不能得到反向引用。还可以看看关于 etags 的另一个问题。
9
对于那些通过谷歌来到这个页面的人:现在GNU Global 确实支持Python(还有更多其他语言),这是通过一个很棒的基于Pygments的插件实现的:
https://github.com/yoshizow/global-pygments-plugin
只需按照README中的说明操作。唯一需要注意的是,在我的情况下,gtags在处理大型文件树时生成了空文件,这可能是因为大量使用了符号链接;解决办法是按照手册中的建议使用find
命令:
find . -name '*.py' >/tmp/list # make a file set
gtags -f /tmp/list # and use it
现在你可以搜索定义
global -x main # suppose you have at least one main() somewhere in the code
或者引用
global -rsx sys # this is likely to list *all* your modules
甚至可以搜索不完整标签的可能补全:
global -cs OrderedD # -c: "complete", -s: "non-local references"