python - 是否可以使用 emacs 使 Python etags 更智能一些?

标签 python django emacs tags

我使用 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/

相关文章:

python - 无法使用 SIGKILL 杀死 docker 容器内的 pid 1

python - FFT滤波器与python中的lfilter

django - celery 4.0.0 和基于类的任务工作流程

python - 在 Mac 上的 Azure 云平台中设置 Django 时出现 Virtualenv 错误

macos - 如何在 MacOS 上使用 aquamacs 设置 cscope?

python - 使用电子邮件验证 Django 用户

python - "import site' 失败;使用 -v 进行回溯”- mac os lion,python 2.7,子进程

Django 脆皮表格 : moving buttons to top

git - Emacs shell : save commit message

emacs - Windows7下如何将slime安装到emacs中