In Vim how do I split a long string into multiple lines by a character?

I have this long regex string

(.#.+|__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)$

and I would like to split it by | and have each component on a new line.

So something like this in the final form

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

I know I can probably do this as a macro, but I figured someone smarter can find a faster/easier way.

Any tips and helps are appreciated. Thanks!


Give this a try:

:s/|/|r/g

The above will work on the current line.

To perform the substitution on the entire file, add a % before the s:

:%s/|/|r/g

Breakdown:

:    - 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

Replace each instance of | with itself and a newline ( r ):

:s/|/|r/g

(ensure your cursor is on the line in question before executing)


actually you dont have to add | before the patter, try this s/,/,r/g it will replace comma with comma following a line break.

链接地址: http://www.djcxy.com/p/49328.html

上一篇: 如何根据使用Vim的模式将文本分成多行?

下一篇: 在Vim中,我如何将一个长字符串分割成多个字符?