2009-07-30 8 views
12

में तह संभव डुप्लिकेट:
How to achieve code folding effects in emacsकोड Emacs

Dreamweaver का एक उत्कृष्ट सुविधा code folding of any lines of text है - रिकर्सिवली!

यह शानदार है, मैं भाषा के बावजूद किसी भी पाठ या कोड को फोल्ड कर सकता हूं। मैं मौजूदा सिस्टम के साथ काम करता हूं; मैं एक भाषा में अच्छी तरह से लिखित कोड या कोड संपादित नहीं करता हूं। ज्यादातर एचटीएमएल भगवान के साथ मिश्रित-जानता है-क्या। तहखाने की रेखाएं को समझती हैं आसान और तेज़। अफसोस की बात है, यह केवल सुविधा है जिसे मैं Dreamweaver में पसंद करता हूं।

क्या इसी तरह के उद्देश्य में Emacs के लिए कोई कोड फोल्डिंग है?

+1

पहले यहाँ: http: // stackoverflow.com/questions/1085170/how-to-achieve-code-folding-effects-in-emacs – dmckee

उत्तर

9

folding mode, एक मामूली मोड है। दुर्भाग्य से यह घुसपैठ कर रहा है: आपको विशेष टिप्पणियों के साथ फ़ोल्डरों को मैन्युअल रूप से एनोटेट करना होगा, जब आप मोड का उपयोग नहीं कर रहे हैं (या उन लोगों के साथ कोड साझा करते समय जो इसका उपयोग नहीं करते हैं) कोड को अव्यवस्थित करते हैं। एक बेहतर मोड आपके कोड को काम में नहीं बदलेगा।

मुझे जोड़ने दो: इसमें एक डुप्लिकेट है जो एक लायक है: How to achieve code folding effects in Emacs

+1

धन्यवाद, मैं पहले से ही उस प्रश्न को देखता हूं और यह मेरे प्रश्न का उत्तर नहीं देता क्योंकि मैं नहीं चाहता ऐसा करने के लिए मेरे कोड को संपादित करने के लिए। लेकिन मैं इसे किसी भी उत्तर के रूप में स्वीकार करूंगा, यानी "नहीं।" ऐसा लगता है कि मुझे इसे खुद लिखना होगा या विम में माइग्रेट करना होगा। –

+1

यदि कोई भी इस पृष्ठ को बाद में खोजता है, तो यह टैगिंग आधारित फोल्डिंग लाइब्रेरी ब्याज की हो सकती है: http://lisperati.com/tagging.html –

+1

यदि आप लिखते हैं * यह सब हमें बताएं! मैं थोड़ी देर के लिए Emacs के लिए एक उचित तह मोड चाहते हैं। मैं मूल रूप से छोड़ दिया और अन्य संपादकों का उपयोग शुरू कर दिया। – quark

8

छिपाने शो (hs-minor-mode) एक छोटी सी मोड जो कुछ इस तरह करना होगा ...

डिफ़ॉल्ट तह को गति प्रदान करने के लिए महत्वपूर्ण बाध्यकारी C-c @ C-c जो मैं बहुत बोझिल लगता है है। लेकिन फिर मैं इसका अधिक उपयोग नहीं करता हूं, या तो।

+1

अधिक जानकारी के लिए, देखें: http://www.emacswiki.org/emacs/HideShow – Pete

+1

मैंने इसे पहले से ही देखा है। जैसा कि मैंने उपरोक्त कहा है, सिंटैक्स को समझने की कोशिश करने के बजाय मुझे किसी दिए गए क्षेत्र को छिपाने के लिए वास्तव में कुछ चाहिए। हालांकि धन्यवाद। –

1

कुछ और जो आप देख सकते हैं nxhtml-mode है; यह गुना कोड नहीं है, लेकिन यह मिश्रित कोड (यानी HTML और PHP) को अपने प्रकार के आधार पर अलग-अलग करता है। इससे आपको फोल्डिंग मोड की अजीबता के बिना समझ में समान लाभ मिलता है। मुझे लगता है कि दृष्टिकोण एमाक्स के लिए कहीं भी अधिक उपयुक्त है, सबसे पहले क्योंकि कोड-फोल्डिंग माउस-ओरिएंटेड विचार की तरह दिखती है जो मूल रूप से कीबोर्ड केंद्रित इमैक इंटरफ़ेस को अच्छी तरह अनुकूल नहीं करती है, और दूसरा क्योंकि Emacs एक बड़ी फ़ाइल को एक हद तक नेविगेट करना आसान बनाता है वह कोड आपके रास्ते में बिना दिखाई दे सकता है।

4

आप फ़ंक्शन set-selective-display और चर selective-display देख सकते हैं। बिल्कुल वही नहीं जो आप चाहते हैं लेकिन यह आपको इंडेंटेशन स्तर के आधार पर लाइनों को छिपाने देता है।

+1

चीयर्स, मैंने भविष्य में चर्चा के लिए कम से कम इस फोल्डिंग विचार को प्रदर्शित करने के लिए 'सेट-सिलेक्टिव-डिस्प्ले' का उपयोग करके [कुछ] पकाया []] प्रबंधित किया। यह समाधान नहीं है क्योंकि यह कोड के साथ गड़बड़ करता है, लेकिन यह एक अच्छा प्रदर्शन है। मैं tagging.el का उपयोग एक उदाहरण के रूप में करने का प्रयास करने जा रहा हूं जिससे इसे सही तरीके से कार्यान्वित करने के लिए विचार प्राप्त हो सकें। [1]: http://chrisdone.com/blog/html/2009-08-01-emacs-folding.html#video –

3

मैं fold-dwim.el का उपयोग करता हूं। Emacs से विकी:

fold-dwim.el Emacs फोल्डिंग/रूपरेखा मोड के लिए एक एकीकृत उपयोगकर्ता इंटरफ़ेस है। यह folding.el, hideshow.el, outline.el, टेक्स-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

यदि आपको वास्तव में "सिंटैक्स को समझने की कोशिश करने के बजाय किसी दिए गए क्षेत्र को छिपाने के लिए कुछ" की आवश्यकता है (छुपाएं और पार्सिंग के आधार पर अन्य समाधानों के विपरीत) और आप "[अपने] कोड को संपादित नहीं करना चाहते हैं" (तह करने के विपरीत), तो, मुझे लगता है, आप का मतलब है कि आप नहीं चाहते कि क्षेत्र विभिन्न संपादन सत्रों के बीच लगातार बने रहें। तो फिर तुम http://www.emacswiki.org/emacs/HideRegion उपयोग कर सकते हैं उपयोगकर्ता के चयनित क्षेत्रों को छिपाने के लिए ...

(लेकिन उस अजीब बात है लगातार अंकों के साथ तह नाबालिग मोड में कहीं अधिक सुविधाजनक समाधान हो रहा है।।)

+0

HideRegion बहुत जटिल है। मुझे कुछ चाहिए जो बस काम करता है! –

+0

@Robin लेकिन आप इसे क्या करना चाहते हैं? मेरा जवाब सिर्फ एक मनमाना क्षेत्र छिपाने के बारे में था। –