我正在研究 emacs 作为 Eclipse 的替代品。Eclipse 中我最喜欢的功能之一是能够将鼠标悬停在几乎任何 python 对象上并获取其源列表,然后单击它以直接转到另一个文件中的代码。
我知道这在 emacs 中一定是可能的,我只是想知道它是否已经在某个脚本中实现了,如果是这样,如何在 emacs 上启动和运行它。
看起来我的版本是 24.2 版。
另外,由于我将进行 Django 开发,如果有一个可以理解 Django 模板语法的插件,那就太好了。
我也从 Eclipse 切换到了 Emacs,我必须说,在适应了更多以文本为中心的代码探索方式之后,我一点也不怀念这个特性。
在 Emacs 中,您可以只打开一个 shell 提示符(Mx shell)。然后从 Emacs shell 中运行 IPython,一切就绪。我通常将屏幕水平分成两半,并使底部窗口更薄,这样它就像以前的 Eclipse 控制台一样。
我在我的 .emacs 中添加了一个功能,可以让我“聚焦”底部窗口并将其交换到顶部窗口。因此,当我编码时,如果遇到想要查看源代码的内容,我只需键入 Cx c 将 IPython shell 切换到顶部窗口,然后键入 %psource < code thing > 它将显示资源。
这涵盖了我曾经在 Eclipse 中快速获取源代码的 95% 以上的用例。我也不关心需要输入 Cx b 或 Cx Cf 来打开代码文件。事实上,经过大约 2 或 3 个小时的编程,我发现几乎我可能需要的每个缓冲区都已打开,我只需键入 Cx b <文件名开头>,然后按制表符完成它。
由于我在打字方面变得更加熟练并且不需要将注意力转移到鼠标上,我认为现在这实际上比 Eclipse 中的“快速”鼠标悬停加 F3 策略更快。启动时,在底部打开 IPython 比非交互式 Eclipse 控制台要好得多。您可以使用 Mp 和 Mn 之类的东西来获得 IPython 在通过命令返回方面的前后行为。
我想念的一件事是 IPython 中的制表符补全。为此,我认为有一些附加组件可以做到这一点,但我还没有投入时间来安装它们。
如果您想查看我上面提到的选项的任何 elisp 代码,请告诉我。
Check ropemacs (a refactoring library). It has a "go to definition" command (C-c g
) that works as expected (and opens the file if it needs to).
If you don't want to spend a lot of time configuring emacs for python, have a look at this package.
I don't know about any plugin that understands Django template syntax, sorry.
代表 python-mode.el 打开了一个功能请求
https://blueprints.launchpad.net/python-mode/+spec/go-to-definition
py-complete-goto-definition 应该已经在函数上工作