Asal usul asimetri kembali ke jalan sejarah komputasi.
Versi pendek:
<CR> & <LF> (Carriage-Return and Linefeed)
==
\r & \n
Versi panjang:
Layar pertama pada dasarnya adalah versi digital dari teletype (TTY) dan menggunakan kode kontrol untuk menghasilkan perilaku yang mirip dengan printer. Carriage-return membawa kursor (atau print-head) ke kolom awal. Linefeed maju ke baris berikutnya (pada layar) dan mengumpankan kertas ke depan satu baris.
Untuk printer, Anda harus melakukan paired <CR><LF>
atau output Anda tidak akan terlihat benar. Di layar awal, masalah ini masih berlaku.
DOS (dan agak-Windows setelah) mengikuti standar lama dan menyimpan teks <CRLF>
.
* Teks NIX (karena sebagian besar pengguna sudah terbiasa) hanya menggunakan <LF>
untuk efisiensi.
Untuk menguji di Windows, gunakan Word / Wordpad dan simpan beberapa baris teks "as type: Text - MS-DOS format". Kemudian buka file yang sama di Notepad. Seharusnya terlihat normal. Kemudian simpan file yang sama di Word / Wordpad "as type: Text". Notepad akan mengabaikan semua baris baru dan menjalankan baris bersama. [Format teks Notepad default untuk \r\n
kombinasi sementara Word / Wordpad default ke \n
.]
adalah kode yang setara dengan <CR>
\ n adalah kode yang setara dengan <LF>
Dan dalam pengalaman saya (sangat terbatas) dengan vi, ia akan mencoba untuk "memperbaiki" <CRLF>
kombinasi dari editor teks DOS saya. vi akhirnya menghapus satu karakter, menggantikan dengan <NUL>
. Sebagian besar alasan saya berhenti menggunakan vi.
\r
ada<CR>
dan tidak\n
ada<LF>
. Itu tidak membahas pertanyaan aktual mengapa\n\r
berperilaku berbeda dalam konteks yang berbeda.