作業を迷わず進める!テキストエディタの改行置換、ファイルの改行コード自体を切り替える

「改行を置換する」と聞くと、検索欄で見えない記号を別の記号へ入れ替える操作を想像しがちです。ここで行うのは語句検索ではなく、ファイルの行境界をCRLFからLFへ変える処理です。エディタの設定、保存先、再読込値、実バイトをつなげると、本文を巻き込まずに完了判定できます。

STUDIO-195では3論理行の小さなUTF-8標本を使いました。結果は6バイト、LF 3個、CRLF 0、再検出UTF-8/LFです。この数字がどう対応するかを順番に確認します。

語句置換と改行形式の切替を分ける

本文中の Old195 を探して New195 に変えるような検索置換は、文字列の内容を変えます。改行形式の切替は、行の内容と順番を保ち、境界バイトだけを変えます。検索件数をいくら確認しても、保存ファイルがLFかCRLFかは証明できません。

作業票には、入力の文字コード、現在の改行形式、希望形式、論理行数、最終改行の有無を書きます。対象を1ファイルに限定し、同名ファイルがある場合は絶対パスで区別します。プロジェクト全体の一括変更は、規約と対象一覧が別に承認されているときだけ行います。

CRLF標本の本文を固定する

入力 line-endings.txt は、各行が短い3論理行の合成データです。変換前にファイルを複製し、改行を正規化した本文と論理行数を基準値として保存します。標本が小さいため、行ごとの文字列を全て目視できます。

ハッシュは変換前後で変わるのが正常です。本文不変は、LFとCRLFを同じ区切りへ正規化した比較で確かめます。一方、物理形式はバイトを数えて確かめます。二つの検査を一つのハッシュへ押し込めません。

基準票には3行それぞれの内容と順番も残します。空行や行末空白がある本番原稿では、それらも意図した本文として扱い、自動整形を無効にします。改行形式だけを変える作業で句読点やインデントまで整えないことが、差分を読める大きさに保つ条件です。

タブ設定をLFへ変更する

専用ワークスペースへ標本を置き、rune tab open で開きました。タブIDを取得し、rune tab set-line-ending --line-ending LF --dry-run で予定値を確認してから、同じコマンドを実行しました。適用後のタブ設定はLFです。

dry-runは対象と希望値の取り違えを防ぎます。ただし設定応答は開いているタブの状態なので、保存完了の証拠ではありません。出力先を固定して保存し、閉じた後のファイルを独立検査します。

6バイトの保存物を対象パスへ書く

検証用のLF内容を同じワークスペースの対象パスへ保存した結果、書き込み応答は6バイトでした。3行が各1文字と改行からなる制御標本なので、サイズは異常を見つける補助値になります。実案件では日本語のUTF-8が可変長なので、バイト数だけで文章一致を判断しません。

保存先を取り違えた場合は、正しいファイルの時刻や内容が変わりません。書き込み応答のpathと、後続のinspectに渡すpathを一致させます。別名コピーを納品するなら、その名前を最初から作業票へ書きます。

閉じたファイルのLFを再検出する

タブを閉じ、rune inspect text --path <line-endings.txt> を実行しました。再読込値はencoding=UTF-8、lineEnding=LF、characterCount=6、lineCount=4でした。3論理行に末尾改行があるため、検査上4行と数えられる点も記録します。

さらにバイト列を調べるとLFは3個、CRLFは0個でした。これがLF変換の物理合格値です。正規化した本文が変換前と一致することを組み合わせ、形式変更と内容保持の両方を受け入れます。

末尾改行で1行増える失敗を見分ける

lineCountが期待より1多い場合、本文行が増えたと決めつけず末尾改行の数え方を確認します。今回の4は3本文行と末尾境界による値です。納品規約が末尾改行を要求するなら合格、禁止するなら別の出力条件になります。

CRLFが残っていれば、LFへ設定したタブとは別ファイルを保存した可能性があります。LF個数が不足していれば、行の結合や末尾改行削除を疑います。文字が違う場合は改行処理を繰り返さず、バックアップへ戻って本文差分を調べます。

受け渡し票では形式と内容を別欄にする

この標本の合格条件は、保存先が特定され、UTF-8、LF、6バイト、LF 3個、CRLF 0、正規化本文一致、末尾改行あり、です。テキストエディタ 改行 置換 を語句検索の結果で代用せず、ファイル属性とバイトを直接確認します。

相手がCRLFを要求する場合は、希望値とバイト条件を反転させます。重要なのはLFを常に選ぶことではなく、要求された形式を閉じたファイルから再検出できることです。設定、保存、再読込の三点を同じパスで結べば、作業の戻り先も迷いません。

複数ファイルを処理する場合は、まず一つの代表標本で票を完成させます。その後もファイルごとに保存先とバイト数を残し、代表結果だけで全件を合格にしません。異なる最終改行や文字コードを含むファイルは別群に分けます。

変換後の候補を版管理へ入れるときは、改行だけの差分と本文編集を同じ変更へ混ぜません。先に境界形式だけの変更を検品し、その版を基準に文章修正を始めれば、巨大な差分の中へ意図しない文字変更が隠れるのを防げます。