在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
我知道我可以做这个宏,但我觉得有人更聪明可以找到一个更快/更简单的方法。
任何提示和帮助表示赞赏。 谢谢!
试试这个:
: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
替换每个|
实例 本身和一个换行符( r
):
:s/|/|r/g
(确保在执行之前你的光标在问题上)
实际上你不需要添加|
在patter之前,试试这个s/,/,r/g
它会在换行符后用逗号替换逗号。
上一篇: In Vim how do I split a long string into multiple lines by a character?