2012-10-29 4 views
14

C 코드를 작성할 때 GNUK&R 스타일을 섞어서 사용합니다. 즉 함수의 반환 값, 각 매개 변수 및 여는 중괄호는 자체 행에 있음을 의미합니다. 나는 또한 foldmethod=syntax와 빔의 폴딩 기능 만을 사용하고 싶습니다, 접는는 다음과 같습니다어떻게 Vim에서 GNU C 스타일 함수를 바꿀 수 있습니까?

bad-folding

이 특별한 배 마커 또는 foldexpr의없이 배 요약 함수 이름을 볼 수 있습니까?

+0

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

+0

@matthias는 C에서 올바른 폴딩을위한 해결책을 찾으십니까? – JuanPablo

+0

불행히도 아닙니다. 그리고 그 때문에 나는 수동으로 제외하고 C 코드를 포기하지 않는다 :-( – 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 줄보다 작은 작은 기능도 자동으로 펼쳐질 것이라는 점입니다.

관련 문제