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

Emacs:在任何缩进级别折叠单个代码块,而不依赖于括号,emacs,accessibility,indentation,readability,folding,Emacs,Accessibility,Indentation,Readability,Folding,(这个问题适用于任何语言——Python和Haskell都是例子——它们让你通过缩进而不是括号来组织代码。至少像我这样的人认为,这样的语言可读性更强,编写时间更短。) 我正在阅读的代码有一些大的缩进段落,不能放在一个屏幕上,有时也不能放在十个屏幕上(我使用大字体),如果我可以走到某一行,按下键盘快捷键,隐藏后面的所有内容,直到下一行开始在同一位置或更远的左边,就会更容易看到发生了什么 我发现了许多针对Emacs的代码折叠包,但它们似乎都存在以下问题之一: 它们几乎没有什么功能,而且似乎维护不好

(这个问题适用于任何语言——Python和Haskell都是例子——它们让你通过缩进而不是括号来组织代码。至少像我这样的人认为,这样的语言可读性更强,编写时间更短。)

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

我发现了许多针对Emacs的代码折叠包,但它们似乎都存在以下问题之一:

  • 它们几乎没有什么功能,而且似乎维护不好
  • 它们依赖于显式括号(例如
    {{{…}}}
    )来知道在哪里
  • 它们允许您折叠顶级代码,但不允许您从任意的内部级别折叠
  • 它们可以让你折叠内部的关卡,但只能平行折叠——也就是说,如果你折叠一个一级区块中的一个二级项目,你也必须折叠其余的项目
对于Python,请使用-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.

你能补充一下你测试过哪些软件包/模式不适合你吗?为什么?否则我们会问你很多一般性的问题,比如-你检查过了吗?或者您看到了这个问题吗?我是否错误地记得
elpy
只允许您在某些级别折叠,例如函数或类方法定义的顶部?当我写这个问题的时候,我希望能够在任何级别用任何语言折叠和展开代码,就像JEdit让你做的那样。