Emacs插件列出python模块中的所有方法

Emacs插件列出python模块中的所有方法,python,emacs,Python,Emacs,是否有一个emacs插件,在侧窗格中列出模块中的所有方法 我正在寻找一个插件,该插件具有键盘快捷键,可以显示/隐藏当前打开的python模块文件中的所有方法。您可以查看(最好使用它,因为它适应了最新的Emacs和CEDET)-它可以显示有关从语义(CEDET子包)或通过imenu获取它的源代码的信息(适用于语义不支持的语言) Speedbar(包含在GNU Emacs中)也可以显示顶级对象的列表,但不显示导入之间的差异,以及其他顶级对象的功能。对于第一个问题,使用M-xspeed bar,就像A

是否有一个emacs插件,在侧窗格中列出模块中的所有方法

我正在寻找一个插件,该插件具有键盘快捷键,可以显示/隐藏当前打开的python模块文件中的所有方法。

您可以查看(最好使用它,因为它适应了最新的Emacs和CEDET)-它可以显示有关从语义(CEDET子包)或通过
imenu获取它的源代码的信息(适用于语义不支持的语言)


Speedbar(包含在GNU Emacs中)也可以显示顶级对象的列表,但不显示导入之间的差异,以及其他顶级对象的功能。对于第一个问题,使用M-x
speed bar
,就像Alex建议的那样


对于第二种,启用
hs次要模式
,M-x
hs次要模式
,并使用C-cC-@C-S-h隐藏所有方法,C-cC-@C-S-S显示。对我来说,快速查找方法的最简单和最方便的方法是命令helm-occure(C-x C-M-S o)。您开始键入要跳转到的方法的名称,并在键入时弹出建议。然后按enter键选择所需的方法,光标将跳转到代码中。Helm Occess并不是严格为此目的编写的,但这样做效果很好。

我建议使用

C-C-o
运行elpy-occure定义,该定义创建一个新的缓冲区,其中包含所有类和函数签名的列表

您可以使用
C-n
C-p
浏览列表。 该模式适用于下一个错误跟踪次要模式。 因此,缓冲区内的
C-C-f
允许跳转到所选的类或函数定义

以下是该缓冲区内容的示例:

8 matches for "^ *\(def\|class\) " in buffer: leveling_utils.py
 11:def leveling(episodes_with_potential_associations_by_member):
 26:def _apply_leveling(sorted_episodes):
 41:def _set_non_chronic_associations(episode):
 73:def _apply_sub_to_procedural_association(assoc):
 94:def _set_chronic_associations(episode):
102:def _set_associations_for_self(episode):
118:def _set_to_actual(association):
122:def _log_actual_associations(member, leveled_episodes):

顺便说一句,它还有许多其他有用的特性,对我来说,这些特性使它成为python模式的必要补充。

Speedbar很好,另一个不错的选择是helm imenu。我绑定了几个键,可以从不同的上下文快速访问它,并且大部分时间都在使用它。

没有“第一个”和“第二个”问题。OP问题的第二句更详细地解释了第一句的意思。第一句要求“列出”。第二句要求“显示/隐藏”。不同的问题,尽管相关。在执行
C-C C-o
时,我如何使其不使用已打开的缓冲区,而是打开一个新的缓冲区?helm Occurse将是elpy Occurse定义的一般替换。它使用helm作为底部窗格,然后键入关键字(例如def)并使用TAB跳转到所选项目。