Vim

2012-05-23 6 views
5

के साथ टेक्स्ट रैप पर हास्केल टिप्पणियों में स्वचालित रूप से प्रमुख डैश जारी रखें, मैं विम के साथ अपनी हास्केल स्रोत फ़ाइलों को संपादित कर रहा हूं और 'टेक्स्टविड्थ' विकल्प को स्वचालित रूप से ओवर-लम्बाई लाइनों को लपेटने के लिए सेट कर चुका हूं। तो मेरी ~/.vimrc देखो की तरह:Vim

set tw=78 

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

तो, एक जे एस में उदाहरण के लिए,

/** 
* This is a very long comment which is longer than 78 chars, yeah really 
* longer than 78 chars... 

अच्छी तरह से लिपटे हो जाता है और साथ ही

// This is a very long comment which is longer than 78 chars, yeah really 
// longer than 78 chars... 

तो अब यह अच्छा होगा ही हास्केल टिप्पणी में होता है अगर फाइल

की तरह
------------------------------------------------------------------------------ 
-- | This is a very long module description which is longer than 78 chars, 
-- yeah really longer than 78 chars... 

क्या कोई जानता है कि यह और कैसे संभव है? यह व्यवहार कहां निर्दिष्ट है? करता है: formatexpr सेट करें या: प्रारूप प्रारूपों को सेट करने में मेरी मदद करें?

आपकी मदद के लिए अग्रिम धन्यवाद!

= < < जोहानिस

/संपादन: btw मैं vim 7.3.x

+1

यह मेरे लिए स्वचालित रूप से होता है। आप यह जांचना चाहेंगे कि आपके विकल्पों को ओवरराइट करना क्या हो सकता है। 'डैनियल कुल्मन ने कहा' 'प्रारूप' में 'सी' ध्वज' सुनिश्चित करना सुनिश्चित करें। टिप्पणियों को पहचानने के लिए तंत्र विम का उपयोग धारा 30 में वर्णित है।उपयोगकर्ता मैनुअल में से 6 और विषय 'प्रारूप-टिप्पणियां' विषय के तहत अधिक गहराई में भी। – sidyll

+0

आरटीएफएम संकेत के लिए धन्यवाद। :) कि लगभग मेरे सवाल हल हो गया। [मैनुअल] के रूप में (http://vimdoc.sourceforge.net/htmldoc/change.html#format-comments) वर्णन करता है कि अनुकूलित टिप्पणियां सेट करना संभव है। इसलिए मैंने इसे अपने हैकेल.विम सिंटैक्स फ़ाइल में जोड़ा: 'सेट टिप्पणियां = एस 1: - \ \ |, एम: -, ई: - ' लेकिन यह सी-स्टाइल टिप्पणियों के लिए काम करता है विम इतना 'स्मार्ट' है और टिप्पणी के 'ई' और 'एम' भाग की शुरुआत में एक खाली स्थानांतरित करता है। कोई विचार जहां इसे कॉन्फ़िगर किया जा सकता है? – JHannes

+1

हाल ही में विम (पिछले साल या दो के भीतर) ने हास्केल के लिए सिंटैक्स फाइलों के साथ शिपिंग शुरू किया; शायद आपको अपग्रेड करना चाहिए। –

उत्तर

2

देखें मैं एक vim उपयोगकर्ता नहीं हूँ (और emacs के लिए haskell-mode आम तौर पर सिर्फ शान से एक निश्चित खरोज शैली के अनुरूप ढलने "सही काम करता है,"), लेकिन निम्नलिखित मेरी त्वरित परीक्षण के लिए काम करने के लिए लग रहा था:

-- | Bla Bla 
-- continues right under the Bla 
:

:set comments=:--\ ,sr:{-,m:\ ,ex:-} 

यह -- | विशेष रूप से संभाल नहीं है, लेकिन मैं वास्तव में कभी नहीं हास्केल में कुछ देखा है इस तरह इंडेंट 10

यह इस तरह एक टिप्पणी इंडेंट करने के लिए कहीं अधिक सामान्य afaik है:

-- | Usually a one-line short description. 
-- 
-- Continued like this, with a longer description. 

या, इस प्रकार:

-- | Bla bla slightly longer than one line description 
-- bla bla. 
-- 
-- Bla bla additional details. 

आप अपने घोषणा का वर्णन पाठ की एक लंबी चल शरीर चाहते हैं, आप कर सकते हैं इसे इसके बजाय एक बहु-पंक्ति टिप्पणी के रूप में शुरू करें:

{-| 
The definition of 'myfunc', Act I, Chapter 1. Bla bla bla bla 
bla bla... 
-} 
+0

मैं हमेशा अपने कोड में सूचीबद्ध हैडॉक-आधारित टिप्पणी की पहली शैली का उपयोग करता हूं ... मुझे यह क्लीनर लगता है :) – ivanm

3

का उपयोग आप formatoptions सेटिंग की जाँच करनी चाहिए; मेरे लिए, इसका मूल्य croql है। c का मतलब है कि अगली पंक्ति पर टिप्पणियां जारी रहती हैं। :help 'formatoptions'

:set formatoptions=croql 
+1

आपके उत्तर के लिए धन्यवाद, 'प्रारूप प्रारूप' सेट करें ''tcq' दिखाता है। इसे 'croql' पर सेट करने की सलाह दी जा सकती है, लेकिन यह मेरी समस्या का समाधान नहीं करती है, क्योंकि विम टिप्पणी को स्वयं पहचानने में सक्षम नहीं है (ऊपर मेरी टिप्पणी देखें)। लेकिन वैसे भी, धन्यवाद! : डी – JHannes