在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它会在换行符后用逗号替换逗号。

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

上一篇: In Vim how do I split a long string into multiple lines by a character?

下一篇: Replacing carriage return ^M with Enter