VIM 替换 \n 换行符

场景:

用 VIM 编辑文本文件,想在每一行的换行之前,添加一个字符,比如 “;”。

想到替换命令:

:%s/\n/;\n/g

结果总是出错。

后来找到解决方案:

:%s/\n/;\r/g

有人总结的结论:

When searching: \n is newline, \r is CR (carriage return = Ctrl-M = ^M)
When replacing: \r is newline, \n is a null byte (0x00).

意思是:

字符串查找时,”\n” 是换行,”\r” 是回车,也就是经常会看到的 ^M(备注-1)。

字符串替换时,”\r” 是换行,’\n” 是空字符(0x00)。

更多细节可以参考 http://vim.wikia.com/wiki/Search_and_replace

备注-1:

清除所有 ^M 的替换命令

:%s/CTRL+V CTRL+M//g

就是 Control 键+V,然后再 Control 键 + M,就变成了 ^M,然后替换为空就可以了。

 

Tags:

2 comments

Leave a Reply

Your email address will not be published.

*