关于如何在emac中折叠的代码折叠的问题有几个问题,而不必在评论中添加任何特殊字符,例如“标记”。有人说“没有完美的解决方案”。
似乎可以通过解析编写的程序的来源并寻找匹配的括号或括号来完成,或者根据凹痕进行匹配。您也可以使用使用不同方法的脚本组合。
那么,为什么通常会认为没有“完美”且直接的方法可以在EMAC中获得代码折叠呢? Emacs或其架构中是否有一些使其难以编程的东西?如果这很容易,经过这么多年的聪明人使用Emacs,您会认为有人会写它。

有帮助吗?

解决方案

您应该玩Hideshow(hs-minor-mode)合并 fold-dwim.el. 。它完全可以做到您建议的 - 寻找匹配的牙套/帕伦斯,可以设置为缩进。

大多数常见语言都有一个可靠的折叠解决方案,如果没有,所有折叠软件包都是高度定制的。实际上,唯一的缺点是折叠方法的增殖(fold-dwim 对此有所帮助);我曾经认为,因为没有人可以将我指向确定的解决方案,所以折叠是艰难或不可能的 - 实际上,情况恰恰相反。您只需要尝试一下即可了解最适合您的东西。

我用过 folding.el (例如,在我的 .emacs), outline-minor-mode, ,现在是Hideshow。他们都有可能无法按照您想要的方式正常工作(例如,您可能需要设置轮廓式的正则是或定义折叠标记 folding.el),但事实证明这很容易。默认的键键可能有些巴洛克式,但这是由 fold-dwim 和/或 hideshow-org (强烈建议用于Hideshow,cf emacswiki Hideshow页面;您也可以模仿 hideshow-org其他折叠模式的行为,具有一些快速的ELISP和 fold-dwim)。一旦找出了首选的设置,只需通过钩子或缓冲区 - 本地变量自动打开它,然后观察您的代码折叠:)(请参阅下文,请注意可单击 +在边距中)。

Alt Text http://img198.imageshack.us/img198/4029/screenshot1oc.png

其他提示

您应该研究Cedet。它确实可以很好地折叠代码,并且如果您从IDE切换到Emacs,您可能会寻找的许多其他精美功能。

http://cedet.sourceforge.net/

具体而言,查找“全球 - 语义标签折叠模式”

您不需要任何额外的东西,只需启用要折叠的文件类型的大纲少模式即可。

但是实际上,有各种解决方案;我列出了其中一些(我碰巧遇到的那些) http://en.wikipedia.org/w/index.php?title=code_folding&oldid = 375300945#cite_note-2.

不过,我缺少一些东西:在某些情况下,我想结合几种机制:例如,对于Markdown,我想使用基于轮廓的折叠(用于部分)和基于凹痕的折叠(用于引号,代码块等) - 为了不用打扰实现降级的完整解析器。

他们来了:

emacs中基于令牌的折叠

emac中基于令牌的折叠受到 折叠式的 次要模式.

基于凹痕的折叠

一个人可以使用 set-selective-display 如在距离中的功能,以根据压痕层隐藏线 通用代码折叠 笔记。

emacs中的语法依赖性折叠

EMAC中的语法依赖性折叠得到:

几种折叠机制由折叠 界面。

也可以看看 http://www.emacswiki.org/emacs/categoryhidestuff.

EMAC中用户选择区域的折叠

EMAC中用户选择区域的折叠由 隐藏区 命令。

我一直在使用 折叠模式 很长一段时间。有了自动插入模板和Abrevs,对于我来说,对于我来说,它对我来说非常有效。

能够生产缓冲区折叠(用于打印/电子邮件)一直是我的渴望。我的一些折叠标签用于安全 /密码隐藏。

是的,终于在Emacs中存在代码折叠。尝试在melpa.org包库中介绍yafold。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top