用于 Python 编程的 Emacs:模块/类大纲/浏览器

Posted

技术标签:

【中文标题】用于 Python 编程的 Emacs:模块/类大纲/浏览器【英文标题】:Emacs for Python programming: module/class outline/browser 【发布时间】:2011-09-05 00:49:55 【问题描述】:

我目前正在使用https://github.com/fgallina/python.el +ropemacs,但我缺少模块浏览器:单独的缓冲区,概述了当前模块中定义的名称(类及其方法的列表)。谷歌说有 OO-browser 和 emacs-code-browser,但它们看起来已经过时了,我在任何流行的 emacs + python 教程中都找不到关于这个库的任何提及。我应该使用什么来实现跨模块的轻松导航?

【问题讨论】:

【参考方案1】:

我认为ECB(Emacs 代码浏览器)值得一试。我并不总是使用它,但它可以非常方便。特别有用的是“ECB 方法”窗口,它显示了一个模块的所有成员的轮廓。

这是左下角 ECB 方法窗口的屏幕截图:http://dev.pocoo.org/~gbrandl/emacs2.png。

另见http://www.emacswiki.org/emacs/EmacsCodeBrowser。

【讨论】:

我最近能够使 ECB 与 Emacs 24 一起工作,按照此处的说明进行操作:github.com/alexott/ecb/tree/new-cedet。 SourceForge项目很久没更新了,不过我觉得布局定制文档还算OK(ecb.sourceforge.net/docs/…)。【参考方案2】:

也许occur 在这种情况下会有所帮助。例如,如果您想列出定义的函数:M-x occur RET def RET 应该访问列出了def 的缓冲区。

【讨论】:

一个非常简单的建议,在紧要关头起作用。 确实很棒,这对 Python 很有效:M-x occur RET def\b\|class\b\|=[ ]?lambda RET【参考方案3】:

M-x speedbar 可能会得到你想要的。

【讨论】:

我得到了速度条中显示的当前目录中的文件列表,但我想要当前文件中定义的名称(类、函数)列表。 我猜你是对的,我真的需要 M+x speedbar 和 M+x imenu,但我无法让它工作...... @VladimirMihailenco 按文件名上的空格会扩展该文件中的符号。 使用 Emacs 几个月了,从来没有听说过 speedbar :) Emacs 总是让我吃惊:)

以上是关于用于 Python 编程的 Emacs:模块/类大纲/浏览器的主要内容,如果未能解决你的问题,请参考以下文章

Emacs之Python编程环境配置 - elpy

emacs模块——hideshow 代码折叠

python 正则表达式 re.sub & re.subn

Linux 下配置 Python IDE——Emacs

8.Emacs进阶之文本编辑命令

Python网络编程中替代select模块的方法都有哪些?