Markdownで改行できない・されない時の対処法

「Enterで改行したのに、表示すると1行につながってしまう」— Markdown(マークダウン)で誰もが最初につまずくのが改行です。これはバグではなくMarkdownの仕様で、改行の方法は3つあります。このページで原因と使い分けをまとめました。動作は無料のMarkdownビューアーに貼り付ければ、その場で確認できます。

改行方法の早見表
方法書き方向いている場面
半角スペース2つ行末に「␣␣」を付けて改行同じ段落内で行だけ変えたいとき
空行を挟む行と行の間に空行を1行話題が変わるとき(段落分け)
<br> タグ改行したい位置に <br>確実に改行したいとき・表のセル内

なぜMarkdownは改行されないのか

元祖Markdownの仕様では、文中の改行(Enter1回)は「ソースを読みやすくするための折り返し」として扱われ、表示には反映されません。英語の文章では、長い段落を適当な位置で折り返して書く習慣があり、それを1つの段落として繋げて表示するための設計です。

日本語の文章では「書いた通りに改行されてほしい」と感じる場面が多いため、このギャップがつまずきの原因になります。対処法は次の3つです。

方法1: 行末に半角スペース2つ

行の最後に半角スペースを2つ入れてから改行すると、表示上も改行(HTMLの <br>)になります。段落は分かれず、行間は詰まったままです。

書き方(␣は半角スペース)
1行目␣␣
2行目
表示結果

1行目
2行目

注意: 行末スペースは目に見えないため、後から見て分かりにくいのが欠点です。また、エディタの設定(保存時に行末の空白を自動削除する機能)で消えてしまうことがあります。チームで書くファイルでは次の空行方式か <br> が安全です。

方法2: 空行を挟む(段落分け)

行と行の間に空行を1行入れると、前後が別々の段落(HTMLの <p>)になります。段落の間には余白が付くので、見た目にも区切りが明確になります。

書き方
最初の段落です。

次の段落です。
表示結果

最初の段落です。

次の段落です。

「行を変える(スペース2つ)」と「段落を変える(空行)」は別物です。文章のまとまりが変わるときは段落で分ける方が、読みやすさもHTMLの構造も良くなります。

方法3: brタグを使う

HTMLの <br> タグを書けば、その位置で確実に改行されます。ほとんどのMarkdown対応ツールで使えます。

書き方
1行目<br>2行目
表示結果

1行目
2行目

<br> が特に活躍するのは表(テーブル)のセル内です。セル内では通常の改行が使えないため、<br> が唯一の改行手段になります。詳しくは表(テーブル)の書き方をご覧ください。

サービスごとの改行の違い(GitHub・Qiita・Notion等)

実は「Enter1回で改行されるかどうか」はサービスによって挙動が異なります。多くの国産サービスは、日本語ユーザーに合わせてEnter1回を改行として表示する設定になっています。

サービスEnter1回の扱い
GitHub(README等)改行されない(スペース2つ or <br> が必要)
GitHub(IssueやPRのコメント)改行される
Qiita / Zenn / はてなブログ改行される(ソフトブレイクを改行として表示)
Notion改行される(Shift+Enterで行内改行、Enterでブロック分割)
Slack / Discord改行される
「Qiitaでは改行されたのにGitHubのREADMEでは繋がってしまった」という現象はこの仕様差が原因です。どの環境でも同じ見た目にしたい文書では、空行での段落分けを基本にするのがおすすめです。

行間・余白を広げたいとき

「空行を2行、3行と増やしても間隔が広がらない」のもMarkdownの仕様です(連続した空行は1つの段落区切りにまとめられます)。<br> を連打して無理やり間隔をあける方法もありますが、文書の構造としてはきれいではありません。

正攻法は、表示側のCSSで段落の余白(margin)や行間(line-height)を調整することです。Markdown Viewerなら、本文や見出しの「下余白」「行間」をスライダーで調整して、そのままCSSとしてコピーできます。ブログ全体の読みやすさを整えたい場合に便利です。

改行の挙動、その場で確認しませんか?
コピペするだけで即プレビュー。スペース2つ・空行・brタグの違いが一目でわかります。

無料のMarkdownビューアーを開く

よくある質問

行末のスペース2つが自動で消えてしまいます

エディタの「保存時に行末の空白を削除する」設定(VS Codeの files.trimTrailingWhitespace など)が原因です。Markdownファイルだけ除外設定にするか、<br> タグを使ってください。

箇条書きの項目の中で改行したい

行末スペース2つ、または <br> で改行できます。項目の中に段落を作りたい場合は、空行を挟んで次の行を半角スペース4つでインデントします。

改行とは逆に、長い行を折り返したくないときは?

表示の折り返しはCSS(white-space や表示幅)の領域です。コードやコマンドであればコードブロックにすると横スクロールで表示されます。

関連ガイド