7

私は通常、VIMでRUBYファイルを編集します。メソッド(def ... end)をフォールドしたい。フォールド構文の定義を手伝ってもらえますか?

4

3 に答える 3

18

セットアップと動作を強調するRuby構文がすでにあると仮定して、syntaxフォールディングのモードを使用します。

set foldmethod=syntax

classこれにより、 ..enddef..endなどのフォールドが得られます。

于 2009-05-11T18:49:30.287 に答える
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>
于 2009-05-11T18:54:43.273 に答える
0

最初の行にカーソルを置き、次にzfnjを置くと思います。ここで、nは折りたたむ行の数です(つまり、10行を折りたたむにはzf10jを使用します)。構文も認識されると思うので、PHPのように、閉じ括弧に折りたたむためにzf}を実行します。私はRubyでコーディングしていないので、これがRubyで機能するかどうかはわかりません。

それ以降、切り替えるには、zoが開き、zcが閉じます。

于 2009-05-11T20:07:40.003 に答える