如何通过空行折叠vim(rspec示例)?

时间:2013-02-10 23:17:48

标签: vim folding

我试图让vim以我想要的方式折叠,但却有麻烦。

我在我的一些测试代码中使用了空格来使其更清晰,我无法通过空行来获取vim。

我有什么:

describe 'Troubles' do

  describe 'Home' do

    let( :troubles ) { be_over}

    describe 'Pain' do
      it "shouldn't be this hard" { puts "but it is" }
    end
  end
end

它希望它折叠如下:

describe 'Troubles' do

  describe 'Home' do
+--- 6  lines: -------------------
  end
end

完成任务的方法是什么?

这是我的.vim折叠设置

set tabstop=2
set shiftwidth=2
set expandtab

set foldmethod=indent
set foldnestmax=10
set nofoldable
set foldlevel=1

2 个答案:

答案 0 :(得分:3)

你正在使用什么折叠方法?使用缩进折叠方法对我来说很好(它折叠5行,因为第一行是一个空白的无痕线。

set foldmethod=indent

答案 1 :(得分:0)

如果您有兴趣专门为RSpec文件折叠,那么a little RSpec foldexpr plugin我在周末聚在一起。它的功能很大(~150 SLOC),但它只是按我喜欢的方式处理折叠(例如,折叠包含一个块之后的尾随新行,这不完全是你的问题,但非常接近)。

这是您的示例代码的折叠列:

-    describe 'Troubles' do
|
|-     describe 'Home' do
||
||       let( :troubles ) { be_over}
||
||-      describe 'Pain' do
|||        it "shouldn't be this hard" { puts "but it is"}
|||      end
||     end
|    end

以及它看起来像折叠的东西:

describe 'Troubles' do

- describe 'Home' ---------------------------------------------------- [4] -
end