Sözdiziminde s/foo/bar, \rve \nbağ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
\rYukarı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= \nve bar= \r.