改行コード(LF・CRLF・CR)を相互に変換します。WindowsとMac・Linuxの間でファイルをやり取りしたときの表示崩れを直せます。
3種類の改行コード
CRとLFの区別は、タイプライターの動作(キャリッジを戻す=CR、紙を1行送る=LF)に由来します。
| 名称 | 表記 | 主な環境 |
|---|---|---|
| LF | \n | Linux、macOS(現行)、Web標準 |
| CRLF | \r\n | Windows |
| CR | \r | Mac OS 9以前(現在はほぼ使われません) |
よくあるトラブル
- Windowsで作ったファイルをLinuxのシェルスクリプトとして実行するとエラーになる(行末の \r が原因)
- メモ帳で開いたら全部1行に見える(LFのみのファイルを古いメモ帳で開いた場合)
- Gitの差分が全行変更として表示される(改行コードが一括で変わっている)
- CSVを取り込むと最終列に余分な文字が入る
Gitでの対処
チームで統一するなら、リポジトリに .gitattributes を置いて「* text=auto」と指定する方法が確実です。
# Windows で LF のリポジトリを扱う場合の一般的な設定 git config --global core.autocrlf true # 改行を変換しない場合 git config --global core.autocrlf false
よくある質問
Q LFとCRLFはどちらを使うべきですか?
Web開発やLinux環境ではLFが標準です。Windows専用のバッチファイルなどはCRLFが必要な場合があります。
Q 改行コードを確認するには?
テキストエディタのステータスバーに表示されることが多いです(VS Codeでは右下に表示されます)。
Q シェルスクリプトが動かないのはなぜ?
CRLFで保存されていると、行末の \r が引数の一部として扱われエラーになります。LFに変換してください。
Q Gitで差分が全行になるのはなぜ?
改行コードが一括で変換されたためです。core.autocrlf や .gitattributes の設定を確認してください。
