Как сложить все вхождения регеляции в Vim?
Вопрос
Мой коллега использует ужасный редактор исходного кода, который оставляет странные комментарии по всему коду. В визуальной студии, я создал макрос, это просто складывает все эти комментарии блоки, поэтому я не должен их видеть.
Теперь я хотел бы сделать то же самое в Vim.
Это регулярное выражение совпадает с каждым из этих блоков:
/^.*\/\* EasyCODE.*\(\(\n.*\*\/\)\|\(\n.*\/\*.*\)\|\(\n\/\/.*\)\)*/
Теперь держу пари, что есть действительно хороший способ сложить все спички этой картины в Vim. Тем не менее, я достаточно новичок в Vim и не знаю, как это сделать.
Не могли бы вы помочь мне там?
Редактировать: Некоторые примеры:
Эти комментарии блоки всегда начинаются с /* EasyCODE
. Отказ Иногда комментарий имеют закрытие */
Прямо на конце первой строки, иногда только на следующей строке. Следующие линии могут или могут не содержать дополнительные "/* EasyCODE
... "блоки.
Один из этих блоков может выглядеть так
/* EasyCODE ) */
/* EasyCODE ( 0
some text */
/* EasyCODE F */
или нравится это
/* EasyCODE V8 */
/* EasyCODE ( 0 */
или нравится это
/* EasyCODE > */
Как я уже сказал, вышеперечисленное Regeex ловит их всех.
Решение
Я не совсем понятен в деталях ваших блоков (отсюда комментарий о предоставлении примера), но вы можете использовать что-то вроде этого:
:set foldmarker=/\*\ EasyCODE,\*/
:set foldmethod=marker
Это настроит метод «маркера», который ищет определенные маркеры в коде, а затем он установит начальный маркер для /* EasyCODE
и окончательный маркер */
. Отказ Надеюсь, это даст вам что-нибудь, чтобы начать вас. Если вы можете опубликовать исходный файл образца, я могу предложить еще несколько советов.
:help folding
:help 'foldmarker'
:help 'foldmethod'
:help fold-marker