13

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

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

4

5 回答 5

13

我建议使用elpy

C-c C-o运行 elpy-occur-definitions 创建一个新缓冲区,其中包含所有类和函数签名的列表。

您可以使用C-n和浏览列表C-p。该模式适用于 next-error-follow 次要模式。因此C-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-mode 的必要补充。

于 2015-11-12T21:33:53.310 回答
3

对于第一个问题,使用M-xspeed-bar,就像 Alex 建议的那样。

对于第二个,启用hs-minor-modeM-xhs-minor-mode和使用C-cC-@C-S-h隐藏所有方法,并C-cC-@C-S-s显示。

于 2013-08-28T09:24:10.823 回答
2

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

Speedbar(包含在 GNU Emacs 中)也可以显示顶级对象列表,但不显示导入之间的差异,其他顶级东西的功能

于 2013-08-28T08:30:59.613 回答
1

对我来说,快速查找方法最简单、最方便的方法是命令 helm-occur (Cx c Ms o)。您开始输入要跳转到的方法的名称,并在您输入时开始弹出建议。然后你按回车键选择你想要的那个,你的光标就会在代码中跳到那里。Helm-occur 并不是专门为此目的而编写的,但这样可以很好地工作。

于 2015-10-18T05:40:10.523 回答
0

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

于 2016-10-18T19:08:14.000 回答