2009-04-07 10 views
21

Emacs में, मैं 80 वर्णों की अधिकतम पंक्ति लंबाई को कैसे लागू कर सकता हूं? मैं चाहता हूं कि यह मेरे कोड में उचित लाइन ब्रेक डालें, यदि संभव हो तो टेक्स्ट के दूसरे भाग के सही सम्मिलन के साथ, पाठ के लिए fill-paragraph की तरह।Emacs में अधिकतम पंक्ति लंबाई को कैसे लागू करें?

यह एक छोटा सा उदाहरण:

LongNameType<PrettyLong, AlsoLong> doSomethingWithLongFunctionName(int a, int b); 
foo(); 

यह मैं वास्तव में fill-paragraph करते हैं हो जाता है:

LongNameType<PrettyLong, AlsoLong> 
doSomethingWithLongFunctionName(int a, int b); foo(); 

जबकि मैं इस पसंद करते हैं:

LongNameType<PrettyLong, AlsoLong> 
    doSomethingWithLongFunctionName(int a, int b); 
foo(); 
+0

शानदार विचार! +1, मैं हमेशा वीएस में 100 char/line को बनाए रखने की कोशिश करता हूं ताकि मैं लगातार अपना कोड विंडो के उसी आकार के साथ देख सकूं। इसे स्वचालित करने के लिए उपकरण शांत होगा। – AaronLS

उत्तर

0

नहीं वास्तव में एक emacser, लेकिन c++-mode में auto-fill-mode चालू करते समय क्या होता है?

सी ++ मोड आप ऑटो मांगपत्र देना चाहिए, और स्वत: भरण-मोड आप लाइन रैपिंग देता है ....

+0

मैंने जो उदाहरण दिया था वह पहले ही सी ++ - मोड में था ... – Frank

1

मैं modeline-posn पैकेज का उपयोग करें। यह मॉडलिन में कॉलम संख्या को हाइलाइट करता है यदि यह निर्दिष्ट मान से अधिक है।

5

भरने-अनुच्छेद और ऑटो-फिल-मोड जानबूझकर कोड लपेटें नहीं। ऐसा करने के बहुत सारे तरीके हैं और शायद यह गलत हो जाएगा। वे टिप्पणियां लपेटेंगे, लेकिन इससे आपको यहां मदद नहीं मिलती है।

एकमात्र तरीका मैंने इसे स्पष्ट रूप से करने के लिए किया है जहां मैं पाठ को तोड़ना चाहता हूं। फिर ऑटो इंडेंट को टूटी हुई रेखा को सही जगह पर रखना चाहिए।

क्या आप मौजूदा कोड का एक बड़ा निकाय रीफ्लो करने का प्रयास कर रहे हैं? या कोड पर स्वतः भरने का काम करने की कोशिश कर रहे हैं जिसे आप अभी लिख रहे हैं?

+0

लेकिन मैं सी ++ - मोड को फिल-पैराग्राफ को फिर से परिभाषित करने की अपेक्षा करता हूं ताकि यह वास्तव में सी ++ के लिए सही काम करे। सी ++ - मोड कार्यान्वयन के बाकी हिस्सों की तुलना में यह कठिन नहीं है। हां, आदर्श रूप में मैं अपना पूरा कोड बदलना चाहता हूं। लेकिन, मैं इसे नए कोड के लिए चाहता हूं जिसे मैं Emacs में लिख रहा हूं। – Frank

+0

मुझे लगता है कि यह कठिन है, क्योंकि इंडेंट की तुलना में लाइन को तोड़ने के कई और तरीके हैं। 80 कॉलम चिह्न (या जहां कभी भी) पर तोड़ने से कई बार कोड डालने का सबसे अच्छा विकल्प नहीं होता है (क्या आप प्रत्येक तर्क के बाद तर्क की लंबी सूची में उदाहरण के लिए तोड़ते हैं)। –

+0

मुझे लगता है कि आप सीमा से पहले अंतिम कॉमा के बाद बस तोड़ते हैं। इसमें कुछ अपवाद हो सकते हैं, लेकिन यह मुख्य नियम होना चाहिए। – Frank

5

number of packages हैं जो आपको लाइन की लंबाई सीमाओं की चेतावनी देते हैं। निजी तौर पर, मैं wide-column का उपयोग करता हूं, जो कर्सर रंग को अपने वर्तमान कॉलम के आधार पर बदलता है।

+0

इसने सवाल का जवाब नहीं दिया।Pls एक्स तक पहुंचने पर नई लाइन (रेखा को तोड़ने) को लागू करने के लिए निष्पक्ष समाधान प्रदान करते हैं, अन्यथा लोगों को भ्रमित न करें। – iantonuk

+0

@bedbad कोई भी "प्रश्न का उत्तर नहीं दिया", क्योंकि (जाहिर है) समाधान Emacs में अभी तक मौजूद नहीं है। फिर भी प्रत्येक जवाब ने फ्रैंक को कुछ देने का प्रयास किया जो उसकी मदद करने के लिए काम कर सकता है। कृपया रचनात्मक प्रतिक्रिया जोड़ें - हम एक समुदाय हैं जो लोगों को बनाता है, क्योंकि उन्हें नीचे फाड़ने का विरोध किया जाता है। मुझे संदेह है कि कोई भी मेरे जवाब (या अन्य उत्तरों) द्वारा "भ्रमित" था क्योंकि किसी ने भी कोई जवाब नहीं दिया जो लोगों को गुमराह करता था। –

+0

मुझे नहीं लगता कि आपके उत्तर में किसी प्रश्न के साथ कुछ भी करना है। आपको एक प्रश्न का उत्तर देना चाहिए कि SO प्रश्न में कुछ "जो किसी व्यक्ति के लिए काम कर सकता है", क्योंकि यह उत्तर देने वाले कई लोगों के लिए मौजूद है। यहां तक ​​कि यदि आप 1 की मदद करते हैं तो आप लोगों के पूरे समूह को भ्रमित करते हैं – iantonuk

1

आपको Emacs के लिए कई "लंबवत रेखा" पुस्तकालयों में से एक को देखना चाहिए। कुछ समय पर पूरे बफर पर एक लंबवत हाइलाइट लाइन रखते हैं (वास्तव में आप जो चाहते हैं) नहीं, लेकिन अन्य पुस्तकालयों ने हर समय एक फिक्स कॉलम पर लंबवत हाइलाइट रखा है, जो वास्तव में आप नहीं चाहते हैं, लेकिन आप तुरंत देख सकते हैं जब आपको लाइनों को लपेटना चाहिए।

0

'(c-max-one-liner-length 80) 

'(fill-column 80) 
'(c-ignore-auto-fill (quote (string cpp))) 

आशा है कि यह मदद करता है की कोशिश करो।

संबंधित मुद्दे