Как скрыть пустые строки? - PullRequest
1 голос
/ 17 мая 2019

Раньше я работал со списком расположений (: lvimgrep), чтобы показать содержимое буфера, но недавно я обнаружил сворачивание как интересную альтернативу.Я использую опции foldmethod=expr и foldexpr=getline(v:lnum)=~'.'?1:0.Все непустые строки (или абзац) складываются и разделяются пустыми строками.Здесь вы можете увидеть оригинальный файл и сложенный .Преимущество этого по сравнению со списком местоположений состоит в том, что он показывает количество строк, и нет необходимости в дополнительном буфере.Однако для удобства чтения было бы лучше убрать пустые строки между сгибами, и я не знаю, как это сделать.Это возможно при ручном сворачивании, но если мы включим пустые строки в foldexpr, vim объединит все эти абзацы в один раз.Как их разделить? Вот как должно выглядеть.

1 Ответ

2 голосов
/ 18 мая 2019

Вы можете сделать пустые строки частью предыдущего абзаца, например так:

:set foldexpr=strlen(getline(v:lnum))==0?'=':strlen(getline(v:lnum-1))?1:'>1'

Если текущая строка пуста, используйте уровень сгиба из предыдущей строки (=).

В противном случае проверьте предыдущую строку: если она пустая, это должно быть начало нового абзаца. Создайте новый уровень 1-кратный с помощью >1. В противном случае это должно быть частью существующего абзаца; назначьте ему уровень сгиба 1.

...