Emacs Python模式下的bpythonlike自动完成和参数描述?

2024-05-01 02:40:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经使用bpython来满足我所有的Python解释需求。这是令人愉快的,尤其是当您使用不熟悉的新库或具有多种功能的库时。无论如何,在我正在做的事情旁边运行bpython解释器是很好的,但是如果我既有类似自动完成功能的特性,又有参数描述,就像我在Emacs中编辑代码时bpython所做的那样。我完全疯了吗?有人知道怎么做吗?在

谢谢, 布拉德利动力


Tags: 代码功能编辑参数特性事情解释器动力
1条回答
网友
1楼 · 发布于 2024-05-01 02:40:37

你不是完全疯了。在

python-mode可以与eldoc-mode集成,以显示您正在调用的函数的arg规范。只要在python文件中执行M-x eldoc-mode来打开它,它就会开始工作了。它与一个低级的python缓冲区进行对话,以直接检查函数,因此它应该总是非常准确。您可以为emacs启动文件中的所有新的python-mode缓冲区自动启用它。现在,在这一点上,我不得不说,我不做任何常规的python编程,当我刚刚尝试它时,它不起作用。我花了几分钟在源代码中查找,一切似乎都已就绪,但它在低级进程中运行的代码只是返回一个空字符串。也许这只是我的设置,或者我读错了源文件;很难说。在

Emacs提供了几种不同类型的扩展/自动完成。默认情况下,您可以通过按M-/来访问dabbrev-expand。这是一种相当简单的完成形式;它只用于处理您碰巧编辑的任何旧文件。更复杂的是hippie-expand,但即使这样也不能做任何特定于python的操作。文档中说它可以与hippie-expand集成以获得精确的完成,但这可能是个谎言;我无法理解它是如何工作的。稍微翻一翻就可以看到一些相关的解决方案,它们似乎都依赖于^{}。如果我要做很多python编程,并且还没有设置相当复杂的emacs,那么我可能会从安装emacs-for-python开始。它看起来是一个相当完整的设置,甚至声称有实时警告/错误检测。在

本着帮助他人自助的精神,我想指出我是如何得到这些信息的。我的第一步是在python-mode中打开一个文件。实际上我没有任何可用的python代码,所以我只是转到我的临时缓冲区,并将其作为python缓冲区(M-x python-mode)。然后我请求帮助了解这个奇怪的新模式(C-h m),看看它能做些什么。本文作者对模式能做什么做了一个简短的总结,其中提到了eldoc-mode,Imenu,outline-modehippie-expand,rlcompleter,abbrev表,以及其他一些东西。从那里我开始查看源代码。例如,为了与eldoc模式集成,它定义了一个名为python-eldoc-function的函数,并将其提供给eldoc模块,以便在python缓冲区中使用。阅读这些代码可以告诉我它是如何与低级缓冲区交互的,等等

我希望这些能有所帮助。在

相关问题 更多 >