2009-05-11 2 views
7

보통 VIM에서 RUBY 파일을 편집합니다. 나는 방법 (def ... end)을 접기를 원한다. fold 구문을 정의하는 데 도움을 주시겠습니까? 이미 루비 구문 설정을 강조 표시하고 작업있어 가정VIM에서는 어떤 폴드를 사용해야합니까?

+0

질문을 명확히 할 수 있습니까? shiftwidth, ruby ​​및 fold 구문 사이에 연결이 표시되지 않습니까? 그들은 나에게 3 개의 비 관련 항목처럼 보입니다. –

+0

예 나도 볼 수 없으므로 명확히하십시오. ;-) –

답변

18

는 접는의 syntax 모드를 사용

set foldmethod=syntax 

이것은 당신이 주름 줄 것 등 class .. enddef ... end,

3

저는 기본적으로 모든 것을 접기를 좋아합니다. 여기서는 접기와 관련된 모든 것들을 조정할 수 있습니다. 나는 대부분 Perl과 C++ 코딩을하고 있으며, 잘 작동한다는 것을 알았다. 접기 및 펼침은 공간 키에 매핑됩니다. 여기

내가 내의 vimrc에서 진행 한 내용은 다음과 같습니다

" Folding stuff 
    hi Folded guibg=red guifg=Red cterm=bold ctermbg=DarkGrey ctermfg=lightblue 
    hi FoldColumn guibg=grey78 gui=Bold guifg=DarkBlue 
    set foldcolumn=2 
    set foldclose= 
    set foldmethod=indent 
    set foldnestmax=10 
    set foldlevel=0 
    set fillchars=vert:\|,fold:\ 
    set foldminlines=1 
" Toggle fold state between closed and opened. 
    " 
    " If there is no fold at current line, just moves forward. 
    " If it is present, reverse it's state. 
    fu! ToggleFold() 
    if foldlevel('.') == 0 
     normal! l 
    else 
     if foldclosed('.') < 0 
      . foldclose 
     else 
      . foldopen 
     endif 
    endif 
    echo 
    endf 

" Map this function to Space key. 
    noremap <space> :call ToggleFold()<CR> 
0

나는 당신이 그 첫 번째 줄에 커서를 넣어 생각 zfnj, n은 그래서 당신은 zf10j을 woudl 10 선을 접어 (폴드 라인의 번호입니다). 나는 PHP에서도 문법을 인식 할 것이므로 닫는 대괄호로 접을 수있다. 저는 Ruby에서 코드를 작성하지 않으므로 Ruby에서 작동하는지 모르겠습니다.

다음으로 토글하면 zo가 열리 며 zc가 닫힙니다.

관련 문제