写在前面:今天我就是想唱歌,不想关心文章内容了,哈哈哈。你们是否会想问,谁给你的勇气呢?我的地盘听我的。各位小伙伴,周末好~耳机不好,想众筹买个好点的录音设备
Vim替换命令s是Vim使用者的一个常用命令。通过指定将被替换的源目标串以及将要显示的目标串,以及替换操作的执行范围等信息,可以指示Vim在特定范围进行字符串匹配和替换操作。
在有些场景下,需要将当前文件中的某些语句进行换行显示,达到文件排版等目的。例如,假设希望将如下的文本内容进行逐句按行显示:
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
可对其实现逐句按行显示的效果,如下所示。
Vim教程网(https://vimjc.com)是由一个女生苦苦支撑和维护的Vim相关网站。虽然一直没什么人气,但是她仍然坚持更新了6年的博文。目前已经写了100+篇Vim命令和技巧相关的文章。希望能给有需要的同学提供一点点帮助。
反之,如果需要将上面逐句按行显示的文本转换成本文开头描述的文本,可以执行Vim命令 :%s/。\n/。/g
。
一句话总结上述内容就是:对于Vim替换命令s来说,如果要 替换掉 换行符,需使用 \n
作为搜索串;如果要 替换出 新行,请使用 \r
作为目标串。