私が読んだ内容に基づいて、ターミナルがrawモードの場合、文字はターミナルドライバによって処理されず、そのまま送信されます。
コマンドstty raw
を使用して端末をrawモードに設定したところ、スペースがなくなるまで、出力が毎回右にインデントされていることに気付きました。これは私が意味するところです:
なぜこの動作が起こっているのですか?
stty
設定(onlcr
)の1つは、ターミナルドライバに変換を指示しますnewline(これは実際にはASCII line-feed)で、キャリッジリターンとラインフィードを組み合わせたものです。
Unixライクなシステムは、newlineを行末に書き込むだけで、ターミナルドライバーが正しいことを実行できるようにします(convertnewlineをキャリッジに変換します)リターンとラインフィード)。
キャリッジリターンは「左」になり、改行は「下」になります。
端末をrawモードに設定すると、newlineはキャリッジリターンとラインフィードに変換されなくなります。キャリッジリターンがない場合、そのstaircase効果が得られます。