メインコンテンツへスキップ

🧵VS Codeで改行コード(LF / CRLF)を統一する方法

はじめに

Git 管理下のリポジトリでは、改行コード(LF / CRLF)が混在すると差分が非常に見づらくなることがあります。 特に Windows 環境では、意識しないと CRLF が混ざりやすく、 「内容は変えていないのに diff が真っ赤になる」という事態が起きがちです。

この記事では、VS Code 側の設定だけで改行コードを LF に寄せる方法を整理し、 Git や OS に依存しにくい、安定した運用を作ることを目的とします。


🧠 改行コード問題の全体像

💡 なぜ問題になるのか

  • Windows:CRLF(\r\n
  • Linux / macOS / GitHub:LF(\n

この違いにより、

  • 実質的に中身が同じでも
  • Git 上では「全行変更」に見える

という現象が起きます。

改行コードは「見えない差分」なので、気づいたときには履歴が汚れていることが多いです。


🧩 VS Code でできること(結論)

VS Code では、以下の 3 レイヤで改行コードを制御できます。

  1. 今開いているファイル単位
  2. ワークスペース(プロジェクト)単位
  3. VS Code 全体(ユーザー設定)

リポジトリ運用では 2. ワークスペース単位 が最も実用的です。


🪟 ファイル単位での確認・変更

🔍 現在の改行コードを確認する

  • 画面右下のステータスバーに LF / CRLF と表示されている

🔁 その場で変更する

  1. 右下の LF / CRLF をクリック
  2. 「改行コードの変更」
  3. LF を選択
  4. 保存

既存ファイルを一度だけ直したい場合に有効ですが、毎回やる運用には向きません。


🗂️ ワークスペース単位で LF に固定する(推奨)

🎯 目的

  • このリポジトリ内では常に LF
  • OS や個人設定に左右されない

⚙️ 設定方法

.vscode/settings.json に以下を追加します。

  • 新規作成しても問題ありません
  • すでにある場合は追記します
{
  "files.eol": "\n"
}

これにより:

  • 新規作成ファイル → 自動で LF
  • 保存時も LF が維持される

チーム開発・個人開発どちらでも最も事故が少ない設定です。


🧑‍💻 VS Code 全体のデフォルトを LF にする

🔧 ユーザー設定での指定

VS Code の設定(JSON)に以下を追加すると、 すべてのプロジェクトで LF がデフォルトになります。

{
  "files.eol": "\n"
}

既存の CRLF 前提プロジェクトまで影響するため、チーム作業では注意が必要です。


🔗 Git 設定との関係(重要)

よくある混乱ポイント

  • VS Code:LF にしている
  • Git:core.autocrlf=true(Windows デフォルト)

Git が勝手に CRLF に変換する

VS Code と Git の設定が食い違うと、保存・checkout のたびに改行が揺れ続けます。

基本方針(おすすめ)

  • VS Code:files.eol = "\n"
  • Git:core.autocrlf=false
  • 必要なら .gitattributes で制御

※ Git 側の詳細は別記事で扱うのが望ましい


🧭 迷ったらこの運用

- リポジトリ内は LF に統一 - `.vscode/settings.json` で制御 - 個人の OS 差・エディタ差を排除

これだけで、

  • 不要な差分
  • レビューのノイズ
  • 履歴の汚染

をほぼ完全に防げます。


🏁 まとめ

  • 改行コード問題は VS Code 側で十分コントロール可能
  • ワークスペース設定で LF 固定が最も安全
  • Git 設定と衝突しないよう意識することが重要

「差分が静かになる」だけで、 リポジトリの可読性とストレスは驚くほど改善します。