改行コードとそれにまつわるタイプライターのお話

あけましておめでとうございます!
髪を切って心機一転、オカッパになったチカッパであります(◉∀◉ )ゞ

今年もたくさんブログを書いていきたいと思います。
新年一発目は、技術のお話ではなく雑学をお届けします。

改行コードが気になって…

改行コード、Webに関わるお仕事をしていれば耳にしたことがあると思います。

改行コードには種類がありますが、代表的なものは「LF」や「CRLF」ですね。

この「LF」や「CRLF」は何を略しているのか、どういった意味なのか考えたことはありますか?

今回は、この改行コードにまつわるお話をしていこうと思います。

まずは、改行コードの種類について

以下は、wikipedia:改行コードからの引用です。

改行コード(広義)は以下の2種類であり、
システム(ソフトウェア)により片方または両方が使用される。
  • キャリッジリターン(英: carriage return、CR、復帰)
  • ラインフィード(英: line feed、LF、狭義の改行)またはニューライン(newline、line break または end-of-line、EOL)

キャリッジリターンとラインフィード…
聞きなれない言葉です。

続けていきましょう。

これらの用語はタイプライターが由来である。タイプライターでは印字装置は固定され、紙の方が上下左右に移動することで、文字送りや行送りが行われる。英語などの左横書きにおける「キャリッジリターン」とは、紙を固定して移動する装置(キャリッジ)を元の位置に戻す(リターン、つまり紙の左端に印字装置が来る)ことである。「ラインフィード」とは紙を必要な行(ライン)だけ上に送る(フィード、つまり下の行に印字装置が来る)ことである。

どうやら、この「CR」や「LF」は、昔のタイプライターが由来しているとのことです。

改行コードはタイプライター時代の動作の名残

我が家にホコリをかぶった古いタイプライターがありましたので、久しぶりに引っぱり出してみました。

タイプライター全貌

せっかくなので印字して体験しつつ…と考えていましたが、何十年も稼働していなかったのでインクリボンが乾いていて印字出来ませんでした。残念…

実際にタイプライターを触りながら改行コードとの関係性をご紹介していこうと思います。

この上の部分は「キャリッジ」と呼ばれる部分で、ロール部分に紙を挟む役目をしています。

キャリッジ

こちらは「キーボード」。現在の英字キーボードと同じ「QWERTY配列」です。

キーボード

キーボードを一文字ずつノックすると、キャリッジの手前にあるハンマーが紙を叩いて印字されていくのですが、同時にキャリッジが左に移動する仕組みです。

一番右端までタイピングをすると「チン」と音を鳴らします。「改行してください」の合図です。

そして、改行をしたい時に操作するのが、改行レバー。英語名では「キャリッジリターンレバー」と呼ばれています。

キャリッジリターンレバー

この「キャリッジリターンレバー」を引くと、キャリッジ全体を右方向へ動かすことが出来ます。

キャリッジ自体を行の先頭へ移動させる動作を「キャリッジリターン」と呼ぶのだそうです。

ただ、これだけで単純に先頭に戻っただけなので、先程打った文字の上から二重に打つことになってしまいます。

行送り

新しい行を打つためには、レバーを引いて行送りをする必要があります。
このタイプライターでは、キャリッジリターンレバーを手前に引くと一行分ロールが回り、紙を送ることができます。
これが「ラインフィード」。

タイプライターの時代、文章を改行するためには、この一連の動作が必要でした。

改行コードの種類の一つ、「CRLF」とは、このタイプライター時代の「キャリッジリターン」と「ラインフィード」の二つの動作を1セットとし「改行」の概念として考えているわけですね。

コンピューターの時代になっても、この文化を引き継いでいたと思うと、なんだか胸が熱くなります。

OS間の改行コードについて

改行コードに種類があると冒頭でお話しましたが、OSによって使われている改行コードが異なります。
以下は一覧です。

改行コード 記号 OS
LF n UNIX・Linux・Mac OSのX以降
CRLF rn Windows
CR r Mac OS 9以前

Windowsは、タイプライター時代の「先頭へ戻る(CR)」と「行送り(LF)」の一連の動作を「改行」としてそのまま採用し、Linux(unix)は、「行送り(LF)」のみを「改行」として採用しています。

MacはOS 9までCRを改行としていましたが、BSD UnixベースとなったXからはLFが採用されたようです。

OS間の改行でよくある問題を挙げると、Macのテキストエディットで作成した.txtをWindowsのメモ帳で開いた時、 あれ?改行が全くされてないよ…なんて経験があると思います。これは改行コードに違いがあるためだったんですね。

改行コードの調べ方

自分が作成したファイルの改行コードがわからない場合、コマンドラインを使用して調べる方法もありますが、一番簡単なのは「サクラエディタ」や「秀丸」などのエディタを使用する方法です。

今回は、サクラエディタを使用して、改行コードを確認してみました。
見ていただくとわかりますが、文末に表示される記号が異なります。

LFの場合

LFの場合
LF」の場合は文末にが表示されます。

CRLFの場合

CRLFの場合
CRLF」の場合は文末にが表示されます。

CRの場合

CRLFの場合
最後は「CR」。こちらはと表示されるようです。

キャリッジリターン」「ラインフィード」の概念を知っている上でこの記号を見るととてもわかりやすいですよね。

同じ改行でも、CR、LF、CR+LFでは異なった処理を行ないます改行コードが間違っていると、プログラムが正しい動作を行わない場合がありますので、プロジェクトで指定された改行コードになっているか注意しましょう。

また、Dreamweaver、Sublime text、Atom、などのほとんどのエディタは改行コードを予め設定できます。 使用しているエディタの設定を見直しましょう。

おまけ

タイプライターにも「シフトキー」や「行間」などがあるんです。

こちらはシフトキー。シフトロックもあります。 タイプライターのキーボードとシフト
シフトを押すと、ハンマー全体が下に動き、記号などを打つことが出来る仕組みです。

行間はこちらで設定します。 行間設定レバー
見づらくてごめんなさい…

英語でお手紙を送ることがあまりないため、現在わが家では活躍しなくなってしまいましたが、 時代を越えても使えるアナログな製品はやはり素晴らしいですね。

もしかしたら、あなたのおうちにも眠っているタイプライターがあるかもしれません。 ぜひ、機会があったらぜひ触ってみてくださいね。

タイプライターについてはこちらのサイトでお勉強させていただきました!ありがとうございました。