2009-07-30 68 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隱藏用戶選擇的區域...

(但是,這奇怪的持續性標誌的摺疊鏡模式似乎是一個更爲便捷的解決方案。)