如何实现类似代码折叠或 org-mode 使用的循环类型?在 elisp 中创建此类行为的最佳解决方案是什么?
编辑:对不起,我的表述不够清晰。我想在 elisp 中编写某些与代码折叠非常相似的程序,更确切地说是与具有可扩展层次结构的 org-mode 最相似的程序。我想知道实现这种效果的最佳方法。我认为我听说过 Emacs 可以使用覆盖层来解决这个问题,但我不确定。
至于折叠,我只是使用内置的 set-selective-display。
第二次编辑:
感谢答案,但我认为我问错了问题,所以让我尝试更清楚地解释我要做什么。我想创建以下内容:
当你将光标放在一个函数上并调用这个elisp函数时,它会从任何位置(我想简单地使用 find-tag)获取函数定义并在当前缓冲区中展开。如果必须跳转到另一个缓冲区来查看函数定义,我觉得这是一种上下文切换到另一个文件。因此,我希望它的行为类似于代码折叠,但它会从缓冲区外部拉入代码。这会带来一些问题,因为它不能实际粘贴代码到缓冲区中,如果有人保存它,它将保存所提取的代码。因此,我想知道是否有办法在缓冲区内创建一个不是缓冲区的区域。我认为这很有意义。
EDIT NB 2
并为此提出一个新问题。 - Stefan