Какой фолд я должен использовать в VIM? - PullRequest
7 голосов
/ 11 мая 2009

Я обычно редактирую RUBY файлы в VIM. Я хочу, чтобы методы (def ... end) свернулись. Не могли бы вы помочь мне определить синтаксис сгиба?

Ответы [ 3 ]

18 голосов
/ 11 мая 2009

Если у вас уже есть настройка и работа подсветки синтаксиса Ruby, используйте режим syntax для свертывания:

set foldmethod=syntax

Это даст вам фолды на class .. end и def .. end и т. Д.

3 голосов
/ 11 мая 2009

Мне нравится, что все складывается по умолчанию, и это позволит вам настроить целый ряд вещей, связанных со складыванием. Я в основном пишу на 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 голосов
/ 12 мая 2009

Я думаю, что вы поместили курсор на первую строку, а затем zfnj, где n - это количество строк, которые нужно сложить (так, чтобы сложить 10 строк, вы будете zf10j). Я думаю, что он также распознает синтаксис, так как в PHP я делаю zf}, чтобы сложить в закрывающую скобку. Я не пишу код на Ruby, поэтому не знаю, работает ли он на Ruby.

С этого момента для переключения zo откроется, а zc закроется.

...