C コードを書くときは、 GNUとK&Rのスタイルを組み合わせて使用します。これは、戻り値、各パラメーター、および関数の開始ボディ中括弧が独自の行にあることを意味します。Vim の折り畳み機能も使用したいのですが、 を使用するとfoldmethod=syntax
、折り畳みは次のようになります。
foldexpr
特別な折り目マーカーやsなしで、折り目概要で関数名を確認することは可能ですか?
C コードを書くときは、 GNUとK&Rのスタイルを組み合わせて使用します。これは、戻り値、各パラメーター、および関数の開始ボディ中括弧が独自の行にあることを意味します。Vim の折り畳み機能も使用したいのですが、 を使用するとfoldmethod=syntax
、折り畳みは次のようになります。
foldexpr
特別な折り目マーカーやsなしで、折り目概要で関数名を確認することは可能ですか?
indent
折り畳みを使用する場合、良い妥協点は、foldminlines
パラメーターをより高い数値に設定することです。
:set foldmethod=indent
:set foldminlines=5
ほとんどの関数が長い場合、パラメーターのリストのみに影響します。欠点は明らかに、5 行よりも小さい小さな関数も自動的に展開されることです。
これを出発点として試してください(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
"}