如何在Vim中折叠代码和注释?

时间:2013-03-01 19:41:46

标签: vim folding

Vim可以折叠Ruby代码,但不能折叠注释。

在.vimrc中添加这个以将foldmethod更改为注释后,我再也无法折叠代码了。

autocmd FileType ruby,eruby
  \ set foldmethod=expr |
  \ set foldexpr=getline(v:lnum)=~'^\\s*#'

如何配置Vim以折叠注释和代码?

4 个答案:

答案 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)

我认为你在寻找

set foldignore=#

如果你想折叠块评论(比如多行中的/ * .... * /),请观看我的其他帖子in vi.stackechange

相关问题