DevTools Japan トップへ

タブ⇔スペース変換

タブとスペースを相互変換。インデント幅指定可能

タブ⇔スペース変換ツールの使い方

テキスト内のタブ文字とスペースを相互変換する無料ツールです。チームのコーディング規約に合わせてインデントを統一する場面で活躍します。

タブ vs スペース

インデントにタブを使うかスペースを使うかは、プログラミングの世界で長年議論されているテーマです。PythonはPEP8でスペース4つを推奨、GoはタブがデフォルトなどI言語によって慣習が異なります。このツールでは2スペース、4スペース、8スペースとタブの相互変換に対応しています。

一括変換

コード全体のインデントを一括で変換できるため、他の開発者から受け取ったコードのインデントを自分のエディタ設定に合わせる際に便利です。

タブとスペースのインデント

ソースコードの行頭をどれだけ字下げするか(インデント)を表現する方法には、タブ文字(Tab)を使う流儀とスペース(空白文字)を使う流儀があります。タブは1文字でひとつの階層を表し、表示幅はエディタの設定で2・4・8文字などに変えられます。一方スペースは「半角空白を何個並べるか」で字下げを表すため、どの環境でも同じ見た目になりやすいのが特徴です。この違いはコードの動作には影響しませんが、見た目やファイルサイズ、差分(diff)の出方に関わるため、どちらかに統一するのが一般的です。

変換が必要になる場面は大きく2つあります。ひとつはチームでコーディング規約を統一するときです。ある人はタブ、ある人はスペースでコミットしてしまうと、見た目の階層がずれたりGitの差分が無意味に大きくなったりします。もうひとつは、Webサイトやドキュメントからコードを貼り付けたときのインデントのズレ修正です。コピー元がタブ、貼り付け先がスペース前提だと階層が崩れて見えるため、本ツールでまとめて変換すると整います。

このツールでは、Tab→Spaceでタブ文字を指定したスペース数(2・4・8から選択、初期値は4)に置き換え、Space→Tabで指定数ぶんの連続したスペースをタブ文字に戻します。コード全体を貼り付けて一括で変換でき、処理はすべてお使いのブラウザ内で完結します。入力したコードがサーバーへ送信されることはないため、社内コードなど機密性の高いソースのインデント変換も安心して行えます。

言語別のインデント慣習

インデントにタブとスペースのどちらを使い、幅をいくつにするかは、言語ごとに広く知られた慣習があります。代表的なものを下表にまとめました。プロジェクトに既存のコードがある場合は、まずそのスタイルやエディタ設定(.editorconfigなど)に合わせるのが基本です。

言語一般的なインデント本ツールでの設定例
Pythonスペース4Tab→Space/スペース数4(PEP8準拠)
JavaScriptスペース2が主流Tab→Space/スペース数2
GoタブSpace→Tab(gofmtはタブ)
Rubyスペース2Tab→Space/スペース数2
HTML / CSSスペース2Tab→Space/スペース数2
Javaスペース4Tab→Space/スペース数4

上記はあくまで広く使われている慣習であり、絶対のルールではありません。最終的にはチームの規約や各言語のフォーマッタ(PythonのBlack、Goのgofmt、JavaScriptのPrettierなど)の出力に合わせるのが、無用な差分や混在を避けるうえで確実です。

よくある質問

タブ何個分のスペースに変換できますか?
インデント幅を2・4・8スペースから選べます。Tab→Spaceでタブ1つを指定したスペース数(2/4/8)に置き換え、Space→Tabで指定数ぶんのスペースをタブ1つに一括変換できます。コーディング規約に合わせてインデント幅を統一したいときに便利です。
タブとスペースのどちらを使うべきですか?
どちらが正しいという絶対的な答えはなく、使用する言語やチームの規約に従うのが基本です。たとえばGoはタブが標準、Pythonはスペース4、JavaScriptやRubyはスペース2が広く使われています。プロジェクトの既存コードや設定(.editorconfigなど)に合わせて統一することが最も重要です。
Pythonのインデントはタブとスペースどちらですか?
Pythonの公式スタイルガイドPEP8ではスペース4つによるインデントが推奨されています。タブとスペースを混在させるとエラーの原因になるため、このツールでTab→Spaceを選びスペース数4で変換すると、PEP8に沿ったインデントへ揃えられます。
変換したコードはサーバーにアップロードされますか?
いいえ。変換はすべてブラウザ内のJavaScriptで処理され、入力したコードがサーバーに送信されることはありません。登録不要・無料で、機密性の高いソースコードのインデント変換も安心して行えます。
既存コードのインデントを一括変換できますか?
はい。入力欄にコード全体を貼り付けてTab→SpaceまたはSpace→Tabを押すと、テキスト内のすべてのタブまたは指定数のスペースをまとめて置き換えます。他の開発者から受け取ったコードを自分のエディタ設定に合わせる際にも一括で変換できます。

関連ツール

JSON整形ツール SQLフォーマッター CSV⇔JSON変換ツール
コピーしました