私は通常、VIMでRUBYファイルを編集します。メソッド(def ... end)をフォールドしたい。フォールド構文の定義を手伝ってもらえますか?
2270 次
3 に答える
18
セットアップと動作を強調するRuby構文がすでにあると仮定して、syntax
フォールディングのモードを使用します。
set foldmethod=syntax
class
これにより、 ..end
やdef
..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 に答える