タブをスペースに変換:Excel からコピーした列を揃える
メモ帳や Excel、ターミナルからコピーしたテキストには、見えないタブが入っていて桁揃えに影響します。変換するとタブ1つがスペース4つになり、他の文字は変わらないため、等幅フォントの環境で列が揃います。
タブをスペースにしたい場面
Excel から数行をコピーして Markdown の表やコードのコメントに貼ると、タブの幅がソフトごとに違うため、潰れて見えたり大きく飛んだりします。スペースなら幅が固定なので、等幅フォントでようやく列が揃います。
ターミナルの出力、古いプロジェクトのファイル、Windows のメモ帳で書いた設定も、タブでインデントされていることが多いです。GitHub やオンラインエディタ、チャットに貼ると、タブがスペース1つや8つとして表示され、レイアウトが崩れて見えます。
- Excel の列を Markdown の表へ
- ターミナル出力や旧設定ファイルの桁揃え
- ソフト間で貼る前の形式統一
桁を壊さない使い方
タブ1つは常にスペース4つに置き換わり、エディタのタブ幅設定とは関係ありません。スペース2つでインデントする習慣なら、変換後にスペース4つを2つへ置換するか、エディタのインデント変換を使ってください。設定を読んでくれることは期待できません。
置換は1文字単位なので、行頭・行中・行末のタブがすべて対象になり、連続するタブ2つはスペース8つになります。元の桁揃えが固定のタブストップへのジャンプで行われていた場合、スペース4つでは揃わないことがあり、それは貼り付け先で調整します。
- 常にスペース4つで、エディタ設定は無視
- 行頭・行中・行末のタブがすべて対象
- タブストップによる桁揃えは手直しが必要な場合がある
使えない場面と代替手段
文字を置き換えるだけで、インデント階層の変換やコード整形は行いません。言語ごとの慣習に合わせたい場合は、テキスト置換ではなくエディタのフォーマッタや gofmt、prettier のようなツールのほうが確実です。
逆方向も重要です。タブが必要な環境では、スペースに変換すると壊れます。Makefile はレシピ行がタブでないと実際にエラーになります。そのような場合はファイルの中身ではなく、エディタの表示幅を変えてください。
- 置換のみで整形はしない
- Makefile などタブ必須の対象には使わない
- インデント統一はフォーマッタで
よくある質問
なぜスペース4つなのですか?2つにできますか?
現在はスペース4つで固定で、エディタのタブ幅設定とは関係ありません。スペース2つでインデントする習慣なら、置換後にスペース4つを2つへ置き換えるか、エディタのインデント変換を使ってください。
タブを削除するのと何が違いますか?
削除すると文字がなくなり前後の内容がくっつきますが、スペースに置き換えると列の間隔が残るため、等幅フォントで桁が揃います。構造を残したいときはこちら、単につなげたいときは削除を使ってください。
変換しても列が揃わないのはなぜですか?
元の桁揃えが固定幅ではなくタブストップへのジャンプで行われていたためです。タブをスペース4つに展開すると各列の開始位置が変わります。表計算で列を分け直すか、手動でスペースを足して揃えてください。
関連ツール:タブをスペースに変換