2012-10-29 21 views
14

सी कोड लिखते समय, मैं GNU और K&R शैली का मिश्रण उपयोग करता हूं। इसका मतलब है कि वापसी मूल्य, प्रत्येक पैरामीटर और एक समारोह की उद्घाटन निकाय घुंघराले ब्रेस अपनी लाइन पर है। मैं भी foldmethod=syntax साथ विम के तह सुविधा लेकिन उपयोग करना चाहते हैं, तह इस तरह दिखता है:मैं विम में जीएनयू सी स्टाइल फ़ंक्शंस को सही तरीके से कैसे जोड़ सकता हूं?

bad-folding

यह किसी विशेष गुना मार्करों या foldexpr रों बिना गुना सारांश में समारोह नाम देखने के लिए संभव है?

+0

http://stackoverflow.com/questions/762310/how-can-i-automatically-fold-a-long-c-code-in-vim –

+0

@matthias आपको सी में सही तहखाने के लिए कुछ समाधान मिलते हैं? – JuanPablo

+0

दुर्भाग्य से नहीं। और इसके कारण मैं मैन्युअल रूप से सी कोड को फोल्ड नहीं करता हूं :-( – matthias

उत्तर

1

एक प्रारंभिक बिंदु के रूप में इस प्रयास करें (मैं अपने vimrc में यह है, लेकिन मैं इसे ऑनलाइन पाया):

" Folding { 
function! CssFoldText() 
    let line = getline(v:foldstart) 
    let nnum = nextnonblank(v:foldstart + 1) 
    while nnum < v:foldend+1 
     let line = line . " " . substitute(getline(nnum), "^ *", "", "g") 
     let nnum = nnum + 1 
    endwhile 
    return line 
endfunction 

setlocal foldtext=CssFoldText() 
setlocal foldmethod=marker 
setlocal foldmarker={,} 
setlocal fillchars=fold:/ 
setlocal foldlevel=-1 
" highlight Folded term=underline cterm=bold gui=bold guifg=Blue guibg=Black 
" highlight FoldColumn term=underline cterm=bold gui=bold guifg=Blue guibg=Black 
"} 
2

कुछ जो एक अच्छा समझौता हो सकता है - अगर आप indent गुना का उपयोग करें - स्थापित करने के लिए है उच्च संख्या में foldminlines पैरामीटर।

:set foldmethod=indent 
:set foldminlines=5 

यदि आपके अधिकांश कार्य लंबे हैं, तो यह केवल पैरामीटर की आपकी सूची को प्रभावित करेगा। नकारात्मक रूप से नकारात्मक बात यह है कि यह स्वचालित रूप से छोटे कार्यों को भी प्रकट करेगा जो 5 लाइनों के बाद छोटे होते हैं।