Skip to content

原文(日本語に翻訳)

Edit/Writeツールが、WindowsでCRLFを二重にしてしまう問題と、Markdownのハードラインブレーク(末尾の2スペース)を削除してしまう問題を修正しました。

原文(英語)

Fixed Edit/Write tools doubling CRLF on Windows and stripping Markdown hard line breaks (two trailing spaces)

概要

Windows環境でEdit/Writeツールを使用した際に、改行コードCRLF(\r\n)が\r\r\nとして二重に書き込まれてしまうバグが修正されました。また、Markdownにおける意図的なハードラインブレーク(行末の2つのスペース)が削除されてしまう問題も同時に修正されました。どちらも、ファイルの内容が意図しない形で変更されてしまう深刻な問題でした。

基本的な使い方

markdown
<!-- Markdownのハードラインブレーク例 -->
この行の末尾に2スペースがある  
次の行は同じ段落内で改行される

<!-- 修正前: 2スペースが削除され改行が崩れていた -->
<!-- 修正後: 2スペースが保持され正しく改行される -->

Windows環境でのファイル編集:

bash
# Windows環境でのCRLFファイル確認
file myfile.txt
# 出力: myfile.txt: ASCII text, with CRLF line terminators

# 修正前: Edit後にCRLFが二重になっていた (\r\r\n)
# 修正後: CRLFが正しく保持される (\r\n)

実践例

Markdownドキュメントの編集

markdown
<!-- 修正が効いている状況 -->
# ドキュメントタイトル

この段落では、意図的なハードラインブレークを使用します。  
← 上の行末に2スペースがあると、ここで改行されます。

修正前は、このスペースが削除されて段落が崩れていました。
修正後は、Markdownの意図通りに改行が保持されます。

WindowsでのCRLFファイル編集

powershell
# Windows PowerShellでの確認
Get-Content myfile.txt | ForEach-Object { $_.Length }

# バイナリモードで改行コードを確認
[System.IO.File]::ReadAllBytes("myfile.txt") | 
  ForEach-Object { "{0:X2}" -f $_ } | 
  Select-String "0D0A"  # CRLFのhex表現

注意点

  • この問題はWindows環境でのみ発生していました(macOS/Linuxは影響なし)
  • Markdownのハードラインブレーク問題はすべてのプラットフォームで発生していました
  • v2.1.89以前にEdit/Writeツールで編集されたWindows上のファイルは、二重CRLFが残っている可能性があります。dos2unix ツールなどで修正できます
  • Gitリポジトリでは .gitattributes による改行コード設定も影響することがあります

関連情報