В 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
Я знаю, что могу сделать это как макрос, но я решил, что кто-то умнее может найти более быстрый/простой способ.
Приветствуются любые советы и подсказки. Спасибо!
Ответы
Ответ 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
, он заменит запятую запятой после разрыва строки.