W składni s/foo/bar
, \r
i \n
mają różne znaczenie w zależności od kontekstu.
Krótki:
Dla foo
:
\ n = nowa linia (LF w systemie Linux / Mac, CR + LF w systemie Windows)
\ r = powrót karetki (CR)
Dla bar
:
\ r = jest znakiem nowej linii
\ n = bajt zerowy.
Dłuższy (z numerami ASCII):
NUL
= 0x00 = 0 = Ctrl+ @
LF
= 0x0A = 10 = Ctrl+ J
CR
= 0x0D = 13 = Ctrl+M
Oto lista znaków kontrolnych ASCII . Wstaw je do Vima za pomocą Ctrl+ V, Ctrl+ ---key---.
W Bash lub innych powłokach Unix / Linux po prostu wpisz Ctrl+ ---key---.
Spróbuj Ctrl+ Mw Bash. Jest to to samo, co uderzenie Enter, ponieważ powłoka zdaje sobie sprawę z tego, co ma na myśli, nawet jeśli systemy Linux używają kanałów do rozdzielania linii.
Aby wstawić literały w bash, dodanie ich za pomocą Ctrl+ Vrównież będzie działać.
Wypróbuj w Bash:
echo ^[[33;1mcolored.^[[0mnot colored.
Wykorzystuje sekwencje specjalne ANSI . Włóż dwa ^[
„s poprzez Ctrl+ V, Esc.
Można także spróbować Ctrl+ V, Ctrl+ M, Enter, który pozwoli Ci dać w ten sposób:
bash: $'\r': command not found
Pamiętasz \r
z góry? :>
Ta lista znaków kontrolnych ASCII różni się od kompletnej tablicy symboli ASCII tym , że można tam znaleźć znaki kontrolne, które są wstawiane do konsoli / pseudoterminalu / Vima za pomocą Ctrlklucza (haha).
Podczas gdy w C i większości innych języków zwykle używasz kodów ósemkowych do reprezentowania tych „znaków”.
Jeśli naprawdę chcesz wiedzieć, skąd to wszystko się bierze: TTY odszyfrowane . To jest najlepszy link do tego tematu, ale uważaj: są smoki.
TL; DR
Zwykle foo
= \n
i bar
= \r
.