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