我通常在VIM中编辑RUBY文件。我希望方法(def ... end)折叠。你能帮我定一下折叠语法吗?
答案 0 :(得分:18)
假设您已经使用Ruby语法突出显示设置和工作,请使用syntax
模式进行折叠:
set foldmethod=syntax
这将为您提供class
.. end
和def
.. end
等的折叠。
答案 1 :(得分: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>
答案 2 :(得分:0)
我认为你将光标放在第一行然后是zfnj,其中n是要折叠的行数(所以要折叠10行你woudl zf10j)。我认为它也会识别语法,就像在PHP中我做zf}折叠到结束括号。我不用Ruby编写代码,所以我不知道它是否适用于Ruby。
从那时起,要切换,zo将打开,zc将关闭。