Vim сворачивает каждую строку, заканчивающуюся {но не классами
Я намерен сложить все строки, заканчивающиеся на {
но не классы. До сих пор я придумал эту команду:
:%g/.\{-}\(class\)\@!.*{$/normal! zf%
Но это будет соответствовать также строки, содержащие class
,
1 ответ
Решение
Есть несколько проблем:
- От
:help /\@!
: "Вы не можете использовать"\@!"Для поиска несоответствия перед соответствующей позицией". использование\@<!
, включите возможные символы между ними и отбросьте бесполезное (потому что оно не привязано) не жадное первое совпадение. :global
Команда помещает курсор в первый столбец совпадающих строк, поэтому добавьте$
сделать%
работать все время.- Последующие внутренние складки должны быть определены с открытой внешней складкой:
zv
,
Ergo:
:%g/\%(class.*\)\@<!{$/normal! $zvzf%