Enterキーはキャリッジリターン(CR)キーとは異なります。

Enterキーはキャリッジリターン(CR)キーとは異なります。

多くのWebページでは、EnterキーのASCIIコードが13(0d)と表示されています。
Enterキーはキャリッジリターン(CR)として扱われます。
それでは実験をしてみましょう。
vimを開くにはEnterを3回押し、何もしないでファイルをtest.csvとして保存します。

xxd  test.csv
0000000: 0a0a 0a 

私の結論に達しました。
Enter キーの ascii 値は 0a です。これは改行文字を意味し、キャリッジリターン文字(asciiでは13または0d)とは異なります。
正しいと正しい?

答え1

を押すとターミナルがキャリッジリターンを送信し、EnterUnixシリーズシステムではターミナルドライバー改行文字("newline")に変換します。

たとえば、次のicrnl機能が表示されますstty -a

$ 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

プログラム(シェルスクリプトを含む)はこの機能をオフにし、実際のキャリッジリターンを読み取ってControlJ改行文字と区別することができます。

答え2

このEnterキーはCR文字(Enter、Ctrl + M、値13 = 0x0d = 015)を送信します。シェルプロンプトまたはVi挿入モードでCtrl+を押すと、V次のようになりますEnterCtrl+は、Vカーネルの組み込みターミナルドライバと多くのターミナルベースのプログラム(通常のシェルとvi(m)を含む)で使用されるキーボードショートカットです。 。

Vi(m) 挿入モードでは、Ctrl+M 文字は「新規行挿入」コマンドにバインドされます。 Viはほとんどの入力文字に文字を挿入して反応しますが、いくつかの例外があります。特にCtrl + [Escキーを押して送信する文字です。

テキストファイルでは、改行はLF文字(新しい行、Ctrl + J、値10 = 0x0a = 013)で表示されます。

ViでCtrl+を押すとJ実際には同じ効果がありますが、必要に応じて2つのキー入力をバインドして別のコマンドを使用できます。コマンドモードでCtrl+Jと+の違いを見ることができますCtrl。 +は単にカーソルを次の行に移動し、+はカーソルを次の行に移動し、空白ではなく最初の文字に移動します。MCtrlJCtrlM

関連情報