我使用 emacs 开发我的 Django 项目。在我的 virtualenv“postactivate”脚本中,我有以下简单命令:
find -L . -type f -name "*.py" | xargs etags -e > /dev/null 2>&1 &
TAGS 文件生成得很好,但系统似乎相当笨拙。当光标是模型过滤器调用时,例如
MyModel.objects.filter(...)
然后我点击 M-.,有时 emacs 会把我带到文件时导入 MyModel 的位置(实际导入语句)。我只想访问类、方法和函数定义。
有没有办法让 etag 更智能?
谢谢, 瑞安·卡斯克尔
最佳答案
使用像 python 这样的语言获得正确的模块分析非常困难,由于他的动态特性,获得正确信息的最佳方法是进行静态分析或启发式。
目前我发现的最好的方法是使用 ropemacs 扩展探索方法,它具有代码辅助(非常智能)和调用提示等强大功能。
不幸的是,使用 ropemacs 并不容易,你应该先安装 pymacs,然后配置安装各种 rope 库。 (我正在研究 packaged version of it )
另一个可以静态分析您的 Python 代码并生成“更智能的标签”的包类似于 pysmell。 , 但我没有广泛使用它
关于python - 是否可以使用 emacs 使 Python etags 更智能一些?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2964906/