2009-07-30 65 views
12

折叠可能重复:
How to achieve code folding effects in emacs代码在Emacs

的Dreamweaver的一个极好的功能是code folding of any lines of text - 递归!

这太棒了,我可以折叠任何文本或代码,不管语言如何。我与现有系统一起工作;我不会用一种语言编辑编写良好的代码或代码,大多数情况下HTML都是与上帝知道的东西混合在一起的。折线让很容易和更快地了解。不幸的是,这只是只有功能,我喜欢在Dreamweaver中。

Emacs是否有类似的目标折叠代码?

+1

以前这里:HTTP:// stackoverflow.com/questions/1085170/how-to-achieve-code-folding-effects-in-emacs – dmckee 2009-07-30 19:21:08

回答

9

folding mode,一个小模式。不幸的是,它具有侵入性:您必须使用专用注释手动注释折叠,这会在您不使用模式时(或与不使用该模式的其他人共享代码时)混淆代码。更好的模式不会改变你的代码的工作。

让我补充一句:有一个值得一看的副本:How to achieve code folding effects in Emacs

+1

谢谢,我已经看过这个问题,它不回答我的问题,因为我不想有编辑我的代码来做到这一点。但无论如何我都会接受这个答案,即“不”。看起来我必须自己写这个或者迁移到vim。 – 2009-07-30 21:56:01

+1

如果以后有人来搜索这个页面,这个基于标签的折叠库可能是有趣的:http://lisperati.com/tagging.html – 2009-07-30 22:16:40

+1

如果你*最终写它,让我们都知道!我一直想为Emacs提供一个适当的折叠模式。我基本上放弃了并开始使用其他编辑器。 – quark 2009-07-31 04:50:07

8

隐藏秀(hs-minor-mode)是未成年人模式,会做这样的事情...

默认键绑定触发折叠是C-c @ C-c,我觉得很繁琐。但是我也没有太多用处。

+1

欲了解更多详情,请参阅:http://www.emacswiki.org/emacs/HideShow – Pete 2009-07-30 19:20:16

1

你可能会看到的东西是nxhtml-mode;它不会折叠代码,但它会根据其类型不同地突出显示混合代码(即HTML和PHP)。这样可以让您在可理解性方面获得类似的收益,而不会出现折叠模式的尴尬。无论如何,我认为这种方法更适合Emacs,首先是因为代码折叠看起来像是一个面向鼠标的想法,它不适应基本上以键盘为中心的Emacs界面;其次,因为Emacs可以轻松导航大型文件该代码可以保持可见而不妨碍自己。

4

您可能想要查看功能set-selective-display和变量selective-display。不完全是你想要的,但它可以让你根据缩进级别隐藏行。

3

我使用fold-dwim.el。来自emacs wiki:

fold-dwim.el是Emacs折叠/概述模式的统一用户界面。它支持folding.el,hideshow.el,outline.el,TEX-fold.el和nxml-outln.el

你可以在这里得到它:

http://www.emacswiki.org/emacs/FoldDwim

我有这个在我的.emacs:

(require 'fold-dwim) 
(global-set-key [(C kp-4)] 'fold-dwim-hide-all) 
(global-set-key [(C kp-5)] 'fold-dwim-toggle) 
(global-set-key [(C kp-6)] 'fold-dwim-show-all) 

请记住,你仍然需要激活HS-轻微的模式,折叠模式,等等,但我觉得它更容易使用它们这种方式。

0

如果您实际上需要“隐藏给定区域的东西,而不是试图理解语法”(与基于解析的hideshow和其他解决方案不同),并且“不想编辑[您的]代码” (不同于折叠),那么,我假设,你的意思是你不希望区域在不同的编辑会话之间持续存在。然后,你可以使用http://www.emacswiki.org/emacs/HideRegion隐藏用户选择的区域...

(但是,这奇怪的持续性标志的折叠镜模式似乎是一个更为便捷的解决方案。)