用于 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:模块/类大纲/浏览器的主要内容,如果未能解决你的问题,请参考以下文章