场景:
用 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,然后替换为空就可以了。
非常感谢你的帮助。很实用
%s/$/;/g
是不是更方便些