【问题标题】:Python code-folding in emacs?Emacs中的Python代码折叠?
【发布时间】:2011-07-11 19:08:01
【问题描述】:

我有很多类和定义...

我想在classdef 之前有+- 键来折叠或打开它(切换它)。

我该怎么做?

【问题讨论】:

  • 您关心功能(代码折叠)还是 +、- 符号? Emacs 是基于键盘的,因此使用鼠标切换 +、- 并没有什么意义。检查1085170
  • 不客气...只有我想看到类被折叠然后以其他方式打开它
  • 好。请参阅我给您的链接;在链接中有对Emacs folding mode 的引用,它可能对您有用。
  • 你确定吗?仔细查看 1085170 的 python 相关答案和 Emacs Wiki 中的 Ruby 技巧。这两种方式看起来都很合理,但您需要付出一些努力,因为 Python 代码没有使用 {} 之类的块进行包装。
  • 我不知道 Emacs 做代码折叠。这个问题是我的最爱之一!

标签: python emacs editor folding


【解决方案1】:

Hideshow 开箱即用,可折叠 python 代码。它内置在我的 emacs (24.3.1) 版本中

我需要的不仅仅是这些命令:

M-x hs-minor-mode
M-x hs-hide-all
M-x hs-show-all

切换使用 C-c @ C-c 可能需要重新绑定。您可能还想在 .emacs 文件中设置一个挂钩,以便在打开 .py 文件时自动启用 hs-minor-mode。

我结合使用它来跳转。

M-x imenu <my_func_name>

【讨论】:

  • 这很好用!但是对于一个非常大的 Python 文件(约 5000 行),随着我折叠更多类,事情开始滞后。如果我不折叠太多的类,没关系。特别是当我折叠一个类时,~1500 行,它真的变慢了。我也在使用 Elpy,这可能是一个因素。
  • 5000行python文件!?这么大的文件有充分的理由吗?
  • @cammil 也许不是,但我认为文本编辑器不是执行该规范的正确位置。如果不出意外,当我去重构它时,我应该能够使用代码折叠来帮助管理 5000 行文件。
  • 如何打印折叠代码? ps-print-buffer 出口总是展开。
  • hs-minor-mode相关的所有其他命令
【解决方案2】:

您可以使用CEDET 进行代码折叠(以及更多)。使用 CEDET,您应该考虑将以下设置放入您的 emacs 配置文件中:

(global-semantic-folding-mode t)

CEDET 处理 Python 和其他语言。

Other ideas 关于如何在 StackOverflow 上找到编程时如何使 emacs 更加方便。

【讨论】:

  • CEDET 似乎包含在 Emacs 24 中,但此功能不可用。这两年有变化吗?
猜你喜欢
  • 2015-02-21
  • 1970-01-01
  • 1970-01-01
  • 2010-11-15
  • 2012-03-10
  • 1970-01-01
  • 2011-01-24
  • 2010-11-08
  • 1970-01-01
相关资源
最近更新 更多