0

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

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

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

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

4

4 回答 4

2

在我最近的 Vim 7.3.823 快照中,$VIMRUNTIME/syntax/ruby.vim(2009 年 12 月 2 日版本)具有 Ruby 构造和注释块的折叠功能。

就放

:let g:ruby_fold = 1

进入~/.vimrc. (并确保您没有名为 的变量ruby_no_comment_fold。)

于 2013-03-02T11:26:30.383 回答
0

您可以使用foldmethod=marker和添加{{{/}}}标记(或您选择的其他标记)来指示折叠开始和结束的位置。

您还可以修改定义 ruby​​ 语法突出显示的文件,以调整它认为符合折叠条件的内容foldmethod=syntax

第三种选择是开发一个更复杂的例程以用于foldmethod=expr. 例如,我使用这里定义的 vim 函数来定义如何折叠 ruby​​ 代码。它自动定义模块、类和方法的折叠以及紧接在它们之前的任何注释行;它支持折叠其他部分的标准折叠标记。它与foldexpr=ruby#MethodFold(v:lnum).

更多关于折叠表达式应该如何表现的信息可以通过做找到:help fold-expr。还有一个不错的vimcast

于 2013-03-01T20:31:28.550 回答
0

设置foldmethodindent将根据缩进级别折叠行,无论该行是注释还是代码。

:set foldmethod=indent
:help fold-indent
于 2013-03-04T02:52:23.163 回答
0

我想你正在寻找

set foldignore=#

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

于 2015-10-23T16:19:21.573 回答