A tecla Enter é diferente de Carriage Return (CR)

3

Muitas páginas da web disseram que o código ASCII para a chave de entrada é 13 (0d).
Tecla Enter é considerada como retorno de carro (CR).
Agora vamos fazer um experimento.
Para abrir o vim e apenas clicar na tecla enter por três vezes, não faça mais nada, depois salve o arquivo como test.csv.

xxd  test.csv
0000000: 0a0a 0a 

Minhas conclusões chegaram.
O valor ascii da chave de entrada é 0a, significando nova linha, é diferente de Retorno de carro (13 ou 0d em ascii).
Está certo ou não?

    
por it_is_a_literature 05.03.2017 / 02:20

2 respostas

4

Seu terminal envia retorno de carro quando você pressiona Enter , e em sistemas tipo Unix, o terminal driver traduz isso em linha de alimentação ("nova linha"). / p>

Esse é o recurso icrnl exibido por stty -a , por exemplo,

$ stty -a
speed 38400 baud; rows 40; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke

Os programas (até scripts de shell) podem desativar isso para ler o caractere de retorno de carro real para distingui-lo de Controle J ).

    
por 05.03.2017 / 02:45
1

A tecla Enter envia um caractere CR (retorno de carro, Ctrl + M, valor numérico 13 = 0x0d = 015). Você pode ver isso em um prompt shell ou no modo de inserção Vi pressionando Ctrl + V e então Digite : Ctrl + V é um atalho de teclado para inserir o próximo caractere literalmente no driver de terminal embutido do kernel, bem como em muitos programas baseados em terminal, incluindo shell típico e Vi (m).

No modo de inserção Vi (m), o caractere Ctrl + M é vinculado ao comando “insert line break”. Vi reage à maioria dos caracteres de entrada inserindo esses caracteres, mas há algumas exceções, mais obviamente o caractere Ctrl + [que é o que a tecla Esc envia.

Em um arquivo de texto, uma quebra de linha é representada por um caractere LF (avanço de linha, Ctrl + J, valor numérico 10 = 0x0a = 013).

Pressionar Ctrl + J em Vi teria o mesmo efeito, mas você poderia ligar os dois pressionamentos de tecla para separar comandos se quisesse. Você pode observar uma diferença entre Ctrl + J e Ctrl + M no modo de comando: Ctrl + J simplesmente move o cursor para a próxima linha enquanto Ctrl + M move o cursor para a próxima linha e também se move para o primeiro caracter não-branco.

    
por 06.03.2017 / 01:21