Emacs中的代码折叠[重复]
-
05-07-2019 - |
题
可能重复:
如何在emacs中实现代码折叠效果
Dreamweaver的一个出色功能是代码折叠任何文本行 - 递归!
这太棒了,我可以折叠任何文字或代码,无论语言如何。我使用现有系统;我不会用一种语言编写编写良好的代码或代码等。大多数HTML与神知道什么混合在一起。折叠线使您更容易,更快地理解很多。遗憾的是,这是我在Dreamweaver中喜欢的唯一功能。
Emacs是否有类似折叠的代码折叠?
解决方案
折叠模式,一种次要模式。不幸的是它具有侵入性:您必须使用专门的注释手动注释折叠,这样在您不使用模式时(或与不使用模式的其他人共享代码时)会使代码混乱。更好的模式不会改变您的代码。
让我补充一点:有一个值得一看的重复:如何在Emacs中实现代码折叠效果。
其他提示
hide-show( hs-minor-mode
)是一种次要模式,会做这样的事情......
触发折叠的默认键绑定是 C-c @ C-c
,我觉得这很麻烦。但是,我也不会使用它。
您可能想要查找函数 set-selective-display
和变量 selective-display
。不完全是你想要的,但它可以让你根据缩进级别隐藏线条。
我使用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-minor-mode,折叠模式等,但我发现以这种方式使用它们更容易。
您可能会关注的其他内容是 nxhtml-mode ;它不会折叠代码,但它会根据其类型突出显示混合代码(即HTML和PHP)。这样,在没有折叠模式的尴尬的情况下,可以获得类似的可理解性增益。我认为这种方法更适合Emacs,首先是因为代码折叠看起来像是一个面向鼠标的想法,不能很好地适应基本的以键盘为中心的Emacs接口,其次是因为Emacs可以轻松地导航大文件到一定程度该代码可以保持可见而不会妨碍您。
如果你真的需要“隐藏某个特定区域的东西,而不是试图理解语法” (与基于解析的隐藏显示和其他解决方案不同)并且您“不想编辑[您的]代码” (与折叠不同),那么,我认为,你的意思是你不希望区域在不同的编辑会话之间持久化。然后您可以使用 http://www.emacswiki.org/emacs/HideRegion 来隐藏用户 - 选定的地区......
(但这很奇怪。带有持久标记的折叠小模式似乎是一个更方便的解决方案。)