Sözdiziminde s/foo/bar
, \r
ve \n
bağlama göre, farklı anlamlara sahip.
Kısa:
Şunun için foo
:
\ n = satırsonu (Linux / Mac üzerinde LF, Windows'ta CR + LF)
\ r = satır başı (CR)
Şunun için bar
:
\ r = satırsonu
\ n = boş bayt.
Daha uzun (ASCII numaraları ile):
NUL
= 0x00 = 0 = Ctrl+ @
LF
= 0x0A = 10 = Ctrl+ J
CR
= 0x0D = 13 = Ctrl+M
ASCII kontrol karakterlerinin listesi . Bunları Ctrl+ V, Ctrl+ ile Vim'e ekleyin ---key---.
Bash veya diğer Unix / Linux kabuklarına Ctrl+ yazın ---key---.
Bash'te Ctrl+ M'yı deneyin . EnterLinux sistemleri hat sınırlaması için satır beslemeleri kullansa da, kabuğun ne anlama geldiğini fark ettiği için vurmakla aynı şey.
Değişmez değerleri bash'a eklemek için, Ctrl+ işaretiyle birlikte eklemek Vde işe yarayacaktır.
Bash'te deneyin:
echo ^[[33;1mcolored.^[[0mnot colored.
Bu, ANSI kaçış dizilerini kullanır . İkisini + , ^[
ile ekleyin .CtrlVEsc
Ayrıca , + , Ctrl+ V, ' Ctrlyı deneyebilirsiniz ;MEnter
bash: $'\r': command not found
\r
Yukarıdakileri hatırlıyor musunuz? :>
Bu ASCII kontrol karakterleri listesi, eksiksiz bir ASCII sembol tablosundan farklıdır , burada Ctrl(haha) tuşu ile bir konsola / psödoterminal / Vim'e eklenen kontrol karakterleri bulunabilir.
C ve diğer birçok dilde ise, genellikle bu 'karakterleri' temsil etmek için sekizli kodları kullanırsınız.
Tüm bunların nereden geldiğini gerçekten bilmek istiyorsan: TTY tiksindirdi . Bu konu hakkında karşılaşacağınız en iyi bağlantı bu, ancak dikkat: Ejderhalar var.
TL; DR
Genellikle foo
= \n
ve bar
= \r
.