キーボードのアンダーバー(_)は、タイプライターで下線を引くための工夫から生まれ、やがてsnake_caseへと発展しました——ユーザー名・メール・ファイル名で唯一安全にスペースの代わりに使える文字です。全角版_、二重版‗、オーバーライン‾もあわせて紹介。クリックでコピーできます。
アンダーバー、またはローライン(_、U+005F LOW LINE)は、Unicode基本ラテン文字ブロックのベースラインに位置する水平線で、一般カテゴリは「連結用句読記号」です。もとは純粋に機械的な工夫でした——タイプライターで単語に下線を引くには、その単語を打ち、キャリッジを行頭まで戻し、同じ位置にアンダーバーキーで打ち直す必要がありました。これは1881年のキャリグラフ型タイプライターなどにも搭載されていた専用キーです。この文字は1967年にASCIIへ採用され、コードポイント95(0x5F)に、それまでそこにあった左矢印(←)に代わって割り当てられました。これは、IBMのEBCDICが1964年に「ブレイク文字」として先に追加していたのに続く形です。その後、プログラマーはこれを単語の区切りとして転用しました——アンダーバーで単語をつなぐスタイルは1960年代後半のC言語にまでさかのぼり、『プログラミング言語C』(1978年)にも見られますが、「snake_case」という名前自体が生まれたのは2004年ごろ、Rubyコミュニティによってです(PythonのPEP 8は今も「lower_case_with_underscores」と呼んでいます)。今日では、ユーザー名・メールアドレスのローカル部・ファイル名・URLスラッグでスペースの代わりに使える唯一安全な文字となっており、Markdownでは_単一のアンダーバー_はイタリック、__二重__はボールドと解釈されます。ハイフン(-、U+002D)とも混同されがちで、幅の広い仲間である全角ローライン_(U+FF3F)や二重ローライン‗(U+2017)とも間違われやすい文字です。
キーボードの標準的なローラインと、その2つの幅違いバリエーション——東アジアの組版で使われる全角版と、二重間隔のアンダーバー。どこにでもそのまま貼り付けられます。
オーバーラインはアンダーバーの鏡像——まったく同じ水平線を、下ではなく文字の上に置いたものです。そのため両者は正反対の意味だと誤解されがちです。マクロンは、オーバーラインのつもりで人がよく打ってしまう短いバーです。
URL・ユーザー名・ファイル名では、アンダーバーとハイフンは常に混同されます——しかし高さもコードポイントも異なり、それぞれ役割も違います。
アンダーバー、またはローライン(_、U+005F)は、テキストのベースラインの下に位置する水平線を表すUnicode文字です。もとはタイプライターで単語を打ち、キャリッジを戻して同じ位置にこのキーで打ち直すことで下線を引く工夫でした。1967年にASCIIのコード95に採用され、それまでそこにあった左矢印(←)に取って代わりました。
ユーザー名・メールアドレスのローカル部・ファイル名・URLスラッグでスペースの代わりに使える、唯一安全な文字だからです。これらのシステムではスペース自体が許可されなかったり、エラーの原因になったりすることが多いため、スペースなしで単語を区切るための定番の文字になりました。
snake_caseは、変数名のように単語をアンダーバーでつなぐ命名スタイルです。この書き方自体は1960年代後半のC言語からすでに使われていましたが、「snake_case」という名前が生まれたのは2004年ごろ、Rubyコミュニティによってです。PythonのスタイルガイドPEP 8では今も「lower_case_with_underscores」と呼んでいます。
URL・ユーザー名・ファイル名でよく混同されますが、位置もUnicodeコードポイントも異なります——アンダーバー(_、U+005F)はベースラインの下に位置し、ハイフン(-、U+002D)はテキストの中央に揃います。Markdownでは、アンダーバー1つで_イタリック_、2つで__ボールド__になりますが、ハイフンは箇条書きや複合語に使われます。