Подтвердить что ты не робот

В Vim, как мне разделить длинную строку на несколько строк символом?

У меня есть эта длинная строка регулярных выражений

(\.#.+|__init__\.py.*|\.wav|\.mp3|\.mo|\.DS_Store|\.\.svn|\.png|\.PNG|\.jpe?g|\.gif|\.elc|\.rbc|\.pyc|\.swp|\.psd|\.ai|\.pdf|\.mov|\.aep|\.dmg|\.zip|\.gz|\.so|\.shx|\.shp|\.wmf|\.JPG|\.jpg.mno|\.bmp|\.ico|\.exe|\.avi|\.docx?|\.xlsx?|\.pptx?|\.upart)$

и я хотел бы разбить его на | и иметь каждый компонент в новой строке.

Итак, что-то вроде этого в окончательной форме

(\.#.+|
__init__\.py.*|
\.wav|
\.mp3|
\.mo|
\.DS_Store|
... etc

Я знаю, что могу сделать это как макрос, но я решил, что кто-то умнее может найти более быстрый/простой способ.

Приветствуются любые советы и подсказки. Спасибо!

4b9b3361

Ответ 1

Попробуйте:

:s/|/|\r/g

Вышеуказанное будет работать с текущей строкой.

Чтобы выполнить подстановку во всем файле, добавьте % перед тем, как s:

:%s/|/|\r/g

Структура:

:    - enter command-line mode
%    - operate on entire file
s    - substitute
/    - separator used for substitute commands (doesn't have to be a /)
|    - the pattern you want to replace
/    - another separator (has to be the same as the first one)
|\r  - what we want to replace the substitution pattern with
/    - another separator
g    - perform the substitution multiple times per line

Ответ 2

Замените каждый экземпляр | собой и новой строкой (\r):

:s/|/|\r/g

(убедитесь, что ваш курсор находится в соответствующей строке перед выполнением)

Ответ 3

на самом деле вам не нужно добавлять | перед patter, попробуйте s/,/,\r/g, он заменит запятую запятой после разрыва строки.