タブ⇄スペース変換

テキストのタブをスペースに、またはスペースをタブに一括変換できる無料ツールです。インデント幅(2/4/8)を選べます。コードや表の字下げの統一に。データは送信されません。

スペース→タブは「行頭のインデント」のみをタブ化します(本文中のスペースはそのまま)。

使い方

変換方向(タブ→スペース/スペース→タブ)とインデント幅を選び、テキストを貼り付けると結果が表示されます。 エディタ間で字下げがずれてしまうときの統一に便利です。

変換の規則

2つの方向は、対象とする範囲が異なります。インデント幅は「タブ1つを何スペース分とみなすか」の基準として、 どちらの方向でも使われます。

方向動作
タブ → スペーステキスト中のすべてのタブを、選んだ幅ぶんのスペースに置き換えます。行頭に限らず、行の途中のタブも対象です
スペース → タブ各行の行頭の空白だけを対象にします。行頭に続く空白の合計を「幅ぶんのタブ+余りのスペース」に置き換え、行の本文はそのまま残します

「スペース → タブ」では、行頭にタブとスペースが混ざっていても、いったんスペース換算に直してから計算し直します。 そのため、混在した字下げを一度で揃えられます。

変換の例(インデント幅4の場合)

方向入力結果
タブ → スペース行頭にタブ1つ+本文行頭にスペース4つ+本文
タブ → スペースname(タブ)agename(スペース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項目に開くなら リスト⇄区切り変換 が便利です。