Vim替换命令s是Vim使用者的一个常用命令。通过指定将被替换的源目标串以及将的目标串,以及替换操作的执行范围等信息,可以指示Vim在特定范围进行字符串匹配和替换操作。

一、Vim下将目标字符替换成新行

在有些场景下,需要将当前文件中的某些语句进行换行显示,达到文件排版等目的。例如,假设希望将如下的文本内容进行逐句按行显示:

1
Vim教程网(https://vimjc.com)是由一个女生苦苦支撑和维护的Vim相关网站。虽然一直没什么人气,但是她仍然坚持更新了6年的博文。目前已经写了100+篇Vim命令和技巧相关的文章。希望能给有需要的同学提供一点点帮助。

对于Vim入门者来说,最先想到的命令可能是在Vim命令行模式下执行替换命令::%s/。/。\n/g。不过很遗憾,这条命令并不会如你所愿,将当前文件中的所有 替换成新行。

这里主要涉及到Vim下的换行符以及Vim替换命令。

首先,Vim替换命令substitute的语法格式为::[range]s/源字符串/目标字符串/[option];其次,换行符在替换命令的 源字符串目标串 分别具有不同的含义。

替换命令的 源字符串 部分,用于指定搜索目标,要在替换命令的源字符串部分匹配行尾,需要使用 \n

替换命令的 目标字符串 部分,用于指定要替换出的目标,如果要通过替换命令插入新行,需要使用 \r

因此,对于本文最开始举例的文本,Vim命令 :%s/。/。\r/g 可对其实现逐句按行显示的效果,如下所示。

1
2
3
4
Vim教程网(https://vimjc.com)是由一个女生苦苦支撑和维护的Vim相关网站。
虽然一直没什么人气,但是她仍然坚持更新了6年的博文。
目前已经写了100+篇Vim命令和技巧相关的文章。
希望能给有需要的同学提供一点点帮助。

反之,如果需要将上面逐句按行显示的文本转换成本文开头描述的文本,可以执行Vim命令 :%s/。\n/。/g

vim替换新行

一句话总结上述内容就是:对于Vim替换命令s来说,如果要 替换掉 换行符,需使用 \n 作为搜索串;如果要 替换出 新行,请使用 \r 作为目标串。

嗯,扫一扫就可以找到小女子我啦~