El origen de la asimetría se remonta a la historia de la computación.
Version corta:
<CR> & <LF> (Carriage-Return and Linefeed)
==
\r & \n
Versión larga: las
primeras pantallas eran básicamente versiones digitales de teletipos (TTY) y usaban códigos de control para generar un comportamiento similar al de las impresoras. El retorno de carro llevó el cursor (o el cabezal de impresión) a la columna de inicio. El avance de línea avanzó a la siguiente fila (en una pantalla) y alimentó el papel una línea hacia adelante.
Para las impresoras, tenía que hacer un emparejamiento <CR><LF>o su salida no se vería bien. En las primeras pantallas, el problema seguía siendo cierto.
DOS (y sorta-Windows después) siguieron el estándar anterior y guardan texto con <CRLF>.
* El texto NIX (como la mayoría de los usuarios de vi están familiarizados) solo se usa <LF>para la eficiencia.
Para probar en Windows, use Word / Wordpad y guarde algunas líneas de texto "como tipo: Texto - formato MS-DOS". Luego abra el mismo archivo en el Bloc de notas. Debería verse normal. Luego guarde el mismo archivo en Word / Wordpad "como tipo: Texto". El Bloc de notas ignorará todas las líneas nuevas y las ejecutará juntas. [El formato de texto del Bloc de notas está predeterminado en la \r\ncombinación, mientras que Word / Wordpad está predeterminado en \n.]
\ r es el código equivalente de <CR>
\ n es el código equivalente de <LF>
Y en mi (muy limitada) experiencia con vi, intentaría "arreglar" la <CRLF>combinación de mi editor de texto DOS. vi terminó eliminando un personaje, reemplazándolo con <NUL>. Una gran parte de la razón por la que dejé de usar vi.
\res<CR>y\nes<LF>. No aborda la pregunta real de por qué\n\rcomportarse de manera diferente en diferentes contextos.