15

C コードを書くときは、 GNUK&Rのスタイルを組み合わせて使用​​します。これは、戻り値、各パラメーター、および関数の開始ボディ中括弧が独自の行にあることを意味します。Vim の折り畳み機能も使用したいのですが、 を使用するとfoldmethod=syntax、折り畳みは次のようになります。

折り方が悪い

foldexpr特別な折り目マーカーやsなしで、折り目概要で関数名を確認することは可能ですか?

4

3 に答える 3

2

indent折り畳みを使用する場合、良い妥協点は、foldminlinesパラメーターをより高い数値に設定することです。

:set foldmethod=indent
:set foldminlines=5

ほとんどの関数が長い場合、パラメーターのリストのみに影響します。欠点は明らかに、5 行よりも小さい小さな関数も自動的に展開されることです。

于 2013-01-26T04:09:59.683 に答える
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
"}
于 2012-11-19T23:13:48.433 に答える