Emacs:在任何缩进级别折叠单个代码块,而不依赖于括号



我正在阅读的代码中有一些大的缩进段落,不能放在一个屏幕上,有时放在十个屏幕上(我使用的是大字体),如果我可以转到某一行并按键盘快捷键隐藏后面的所有内容,直到下一行从同一位置或更左边开始,就会更容易看到发生了什么。

我发现了许多Emacs的代码折叠包,但似乎都至少遇到了其中一个问题:

  • 它们几乎没有什么功能,而且似乎维护不善
  • 它们依赖于显式括号(如{{{ ... }}})来知道在哪里
  • 它们允许您折叠顶级代码,但不允许您从任意内部级别折叠
  • 它们允许您折叠内部级别,但只能并行折叠——也就是说,如果您折叠一个级别1块中的一个级别2项目,则还必须折叠其余项目

对于Python,请使用elpy-Emacs Python开发环境。它有一个内置的代码折叠模块:

Elpy通过增强内置折叠次要模式提供代码折叠隐藏显示。

当打开python缓冲区时,Elpy会用左边边缘的箭头。单击箭头将折叠相应的代码块。折叠的代码块可以通过单击行末尾的…按钮。

如果你不想使用鼠标,你可以实现同样的效果具有功能

C-c @ C-c (elpy-folding-toggle-at-point)
Toggle folding for the thing at point, it can be a docstring, 
a comment or a code block.

相关内容

最新更新