Dalam sintaksis s/foo/bar
, \r
dan \n
memiliki arti yang berbeda, tergantung konteksnya.
Pendek:
Untuk foo
:
\ n = baris baru (LF di Linux / Mac, CR + LF di Windows)
\ r = carriage return (CR)
Untuk bar
:
\ r = adalah baris baru
\ n = byte nol.
Lebih lama (dengan nomor ASCII):
NUL
= 0x00 = 0 = Ctrl+ @
LF
= 0x0A = 10 = Ctrl+ J
CR
= 0x0D = 13 = Ctrl+M
Berikut adalah daftar karakter kontrol ASCII . Masukkan mereka di Vim via Ctrl+ V, Ctrl+ ---key---.
Di Bash atau shell Unix / Linux lainnya, cukup ketik Ctrl+ ---key---.
Coba Ctrl+ Mdi Bash. Itu sama dengan memukul Enter, ketika shell menyadari apa yang dimaksud, meskipun sistem Linux menggunakan umpan garis untuk pembatasan garis.
Untuk memasukkan literal di bash, menambahkannya dengan Ctrl+ Vjuga akan berfungsi.
Coba di Bash:
echo ^[[33;1mcolored.^[[0mnot colored.
Ini menggunakan urutan pelarian ANSI . Insert dua ^[
's via Ctrl+ V, Esc.
Anda juga dapat mencoba Ctrl+ V, Ctrl+ M, Enteryang akan memberikan Anda ini:
bash: $'\r': command not found
Ingat \r
dari atas? :>
Ini karakter kontrol ASCII daftar berbeda dari lengkap tabel simbol ASCII , dalam bahwa karakter kontrol, yang dimasukkan ke dalam konsol / pseudoterminal / Vim melalui Ctrlkunci (haha), dapat ditemukan di sana.
Sedangkan di C dan sebagian besar bahasa lain, Anda biasanya menggunakan kode oktal untuk mewakili 'karakter' ini.
Jika Anda benar-benar ingin tahu dari mana semua ini berasal: TTY didemistifikasi . Ini adalah tautan terbaik yang akan Anda temui tentang topik ini, tetapi berhati-hatilah: Ada naga.
TL; DR
Biasanya foo
= \n
, dan bar
= \r
.