Vim可以折叠Ruby代码,但不能折叠注释。
在.vimrc中添加这个以将foldmethod更改为注释后,我再也无法折叠代码了。
autocmd FileType ruby,eruby
\ set foldmethod=expr |
\ set foldexpr=getline(v:lnum)=~'^\\s*#'
如何配置Vim以折叠注释和代码?
答案 0 :(得分:2)
在我最近的Vim 7.3.823快照中,$VIMRUNTIME/syntax/ruby.vim
(2009年12月2日版本)兼容Ruby构造和注释块。
刚刚放
:let g:ruby_fold = 1
进入~/.vimrc
。 (并确保您没有名为ruby_no_comment_fold
的变量。)
答案 1 :(得分:0)
您可以使用foldmethod=marker
并添加{{{
/ }}}
标记(或您选择的其他标记)来指示折叠的开始和结束位置。
您还可以修改定义ruby语法突出显示的文件,以调整它认为可以使用foldmethod=syntax
进行折叠的内容。
第三种选择是开发一个更复杂的例程,用于foldmethod=expr
。例如,我使用定义的here的vim函数来定义如何折叠ruby代码。它自动定义模块,类和方法的折叠以及紧接在那些之前的任何注释行;它支持折叠其他部分的标准折叠标记。它与foldexpr=ruby#MethodFold(v:lnum)
一起使用。
通过:help fold-expr
可以找到有关折叠表达式应如何表现的更多信息。还有一个不错的vimcast about that。
答案 2 :(得分:0)
将foldmethod
设置为indent
将根据缩进级别折叠行,
无论该行是注释还是代码。
:set foldmethod=indent
:help fold-indent
答案 3 :(得分:0)