タブ⇄スペース変換
テキストのタブをスペースに、またはスペースをタブに一括変換できる無料ツールです。インデント幅(2/4/8)を選べます。コードや表の字下げの統一に。データは送信されません。
スペース→タブは「行頭のインデント」のみをタブ化します(本文中のスペースはそのまま)。
使い方
変換方向(タブ→スペース/スペース→タブ)とインデント幅を選び、テキストを貼り付けると結果が表示されます。 エディタ間で字下げがずれてしまうときの統一に便利です。
変換の規則
2つの方向は、対象とする範囲が異なります。インデント幅は「タブ1つを何スペース分とみなすか」の基準として、 どちらの方向でも使われます。
| 方向 | 動作 |
|---|---|
| タブ → スペース | テキスト中のすべてのタブを、選んだ幅ぶんのスペースに置き換えます。行頭に限らず、行の途中のタブも対象です |
| スペース → タブ | 各行の行頭の空白だけを対象にします。行頭に続く空白の合計を「幅ぶんのタブ+余りのスペース」に置き換え、行の本文はそのまま残します |
「スペース → タブ」では、行頭にタブとスペースが混ざっていても、いったんスペース換算に直してから計算し直します。 そのため、混在した字下げを一度で揃えられます。
変換の例(インデント幅4の場合)
| 方向 | 入力 | 結果 |
|---|---|---|
| タブ → スペース | 行頭にタブ1つ+本文 | 行頭にスペース4つ+本文 |
| タブ → スペース | name(タブ)age | name(スペース4つ)age ※行の途中のタブも変換されます |
| スペース → タブ | 行頭にスペース8つ+本文 | 行頭にタブ2つ+本文 |
| スペース → タブ | 行頭にスペース6つ+本文 | 行頭にタブ1つ+スペース2つ+本文(余りはスペースのまま) |
| スペース → タブ | 行頭にスペース4つ+「a = b + c」 | 行頭にタブ1つ+「a = b + c」※本文中のスペースは残ります |
使うときの注意
- 「タブ → スペース」はすべてのタブが対象です。表計算アプリからコピーしたタブ区切りのデータを貼り付けると、 列の区切りまでスペースになってしまいます。
- 行頭の空白がインデント幅に満たない行は、そのまま残ります。幅4でスペース2つの行は変換されません(幅2ならタブ1つになります)。
- 対象になるのは半角スペースとタブだけです。全角スペース( )は空白として数えないため、字下げに使われていても変換されません。
- 文字列リテラルやコメントの中にあるタブも、区別せず変換されます。コードに適用する場合は結果を確認してから使ってください。
- 改行コード(LF・CRLF)はこのツールでは変更されません。統一したい場合は改行コード変換をご利用ください。
よくある質問
タブとスペースはどう変換されますか?
「タブ→スペース」は、タブを選んだ幅(2/4/8)のスペースに置き換えます。「スペース→タブ」は、各行の行頭インデントを幅ごとにタブへまとめます。
なぜスペース→タブは行頭だけなのですか?
文章や表の途中にあるスペースまでタブにすると、意味が変わってしまうためです。字下げ(インデント)の統一という目的に絞って、行頭のみを対象にしています。
インデント幅はどう選べばいいですか?
プロジェクトやエディタの設定に合わせてください。よく使われるのは2または4です。タブ1つを何スペース分とみなすかの基準になります。
入力したテキストは送信されますか?
いいえ。変換はすべてブラウザ内で行われ、入力内容が外部へ送信・保存されることはありません。
「タブ→スペース」は行頭以外のタブも変換されますか?
されます。「タブ→スペース」はテキスト中のすべてのタブが対象で、行の途中にあるタブも選んだ幅のスペースに置き換わります。表計算からコピーした「タブ区切り」のデータを貼り付けると、区切りのタブもスペースになる点にご注意ください。
「スペース→タブ」で何も変わらないことがあります。
行頭の空白がインデント幅に届いていない場合です。幅を4にしてスペース2つの行を変換すると、タブ1つ分に満たないためスペースのまま残ります。幅を2にすればタブ1つになります。また、全角スペース( )は空白として扱われないため、変換されません。
関連ツール
改行コードの統一は 改行コード変換、テキストの整形は テキスト整形 もどうぞ。 JSONを2スペース以外の字下げにしたいときは JSON整形 で整えてから、 タブ区切りのデータを1行1項目に開くなら リスト⇄区切り変換 が便利です。