Как мне свернуть в vim через пустые строки (пример rspec)?

Я пытаюсь заставить 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 ответа

Решение

Какой метод складывания вы используете? использование метода Indent Fold прекрасно работает для меня (ну, это сворачивает 5 строк, так как первая из них - пустая строка с отступом.

set foldmethod=indent

Если вы заинтересованы в свёртывании файлов RSpec, вот небольшой плагин RSpec foldexpr, который я создал за выходные. Он хорош для того, что он делает (~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
Другие вопросы по тегам