参考
vim帮助文档
历史
之前的老设备,(电传)打字机,使用两个步骤完成“切换到新行”(其实这个和矩形对点路径有关):1. 先回车(将打印枕头,返回到起始位置;或称将光标回到一行的起始位置);2. 再换行(将打印纸向上移一行,或称,将光标移至下一行);有专门的两个字符来表示这两个操作:\r , \n;
计算机出现之后,由于存储的限制。同时进入计算机后,只是显示,没有实际物理的操作,开始将这两个操作合符并成一个字符来代表。但是在计算机实际实现时,出现了多样化:
Unix群体决定只使用\n 代表回车换行操作;
Apple群体,决定使用\r代表回车换行;
而Windows,则保持原样。
问题
这样就带来了一个问题,就是如果一个文件在操作系统之间进行复制的时候,就会导致无法辨识的行结束符。这就是为什么,有时候使用老的vi编辑器,编辑从Windows复制来的文件有特殊字符^M的原因(这个特殊的字符,其实是\r的显示体)