タブをスペースに変換
タブあたりのスペース数:
タブをスペースに変換 の使い方
- 1
テキストを貼り付ける
タブ文字を含むコードやテキストを入力ボックスに貼り付けます。
- 2
1タブあたりのスペース数を設定する
「Number of spaces per tab」フィールドで、各タブを何個のスペースに変換するか(2や4など)を選びます。
- 3
タブを変換する
「Convert Tabs to Spaces」をクリックすると、すべてのタブが選んだ数のスペースに置き換えられます。
- 4
出力をコピーする
「Copy Output」を使って、スペースでインデントされた整ったテキストを、エディターやドキュメント向けに取得します。
一貫したインデントのためにタブをスペースに変換する
このツールがすること
本ツールは、テキスト内のすべてのタブ文字を、あなたが選んだ数のスペースに置き換えます。1タブあたりのスペース数のフィールドを 2、4、または任意の値に設定すると、各タブはちょうどその数のスペースになります。置換は文字どおりの1対1です。タブが1つ入れば、選んだ数のスペースが出てきます。
タブは、エディターが何らかの表示幅で描画する、1つの目に見えない文字です。そのため、それを決まった数の実際のスペースに置き換えると、インデントが具体的なものになり、テキストが表示されるどこでも同一になります。
タブとスペースが問題を引き起こす理由
タブには固定の幅がありません。それは「次のタブストップまで進め」という意味の信号です。エディターや表示ソフトによってそのタブストップの位置の設定は異なり、よくあるのは 2、4、8 桁です。そのため、同じタブでインデントされたファイルが、あるエディターではきれいに揃って見え、別のエディターでは不揃いに見えます。これが、長く続くタブ対スペース論争の根源です。
対照的に、スペースは曖昧さがありません。4つ並んだスペースは、ファイルをどこで開いても4桁分の幅です。タブをスペースに変換することは、タブの柔軟性と引き換えに、保証された持ち運びのきく一貫性を得ることなのです。
タブ幅を選ぶ
選ぶ数は、そのコードが置かれる先の慣習に合わせるべきです。多くの JavaScript や TypeScript のプロジェクトは 2 スペースを使います。広く従われている Python のスタイルガイドは 4 を指定しています。一部の C や Go のコードベースは、歴史的に 8 に相当するものを使ってきました。変換する前に、プロジェクトのスタイルガイドや既存のファイルを確認し、あなたのスペースがほかのみんなのものと揃うようにしましょう。
数を間違えても、変換後のコードは依然として有効ですが、そのインデントの深さが周囲のコードと一致せず、レビューで違和感を与えます。前もって正しい幅を確認しておく価値があります。
インデントだけでなく、すべてのタブ
本ツールは、各行の先頭の冒頭インデントだけでなく、行の途中に現れるものも含め、テキスト内のすべてのタブ文字を置き換えます。これはたいてい望ましい動作です。行の途中に紛れ込んだタブは、まさに位置のずれを引き起こす類の、一貫性のない空白だからです。
ただし、タブ区切りのデータでは注意してください。ある行がタブを列の区切り文字として使っている場合、それらをスペースに変換すると、そのデータの解析のされ方が変わってしまいます。ソースコードのインデントにとってはこれが正しい動作ですが、TSV データにとってはそうでないかもしれません。
それが本当に重要になる言語
Python では、インデントが構文の一部であり、同じブロック内でタブとスペースを混在させることは、インタープリターが拒否するエラーになります。すべてをスペースに統一すれば、紛らわしい失敗のひとまとまり全体がなくなります。YAML も同様に厳格で、インデントにタブを使うことを一切認めません。そのため、YAML ファイルを有効なものにするには、タブをスペースに変換することがしばしば必須となります。
インデントが見た目だけの言語であっても、一貫したスペースは差分をきれいに保ち、チームメイトが異なるタブ設定でファイルを開いたときに位置がずれるのを防いでくれます。
改行やその他の空白は安全
変換の対象はタブ文字だけに限られます。改行、既存のスペース、そのほかの内容は、すべてそのまま残されます。各タブをスペースに変えること以外には、何も結合されたり、切り詰められたり、並べ替えられたりしません。これにより、本ツールはファイル全体に対して、構造を乱す心配なく安全に実行できます。
もしコードに、まとめて減らしたい余分なスペースの連なりもあるとわかったなら、それは空白を整理するツールが担う別の仕事です。本ツールは、タブからスペースへの置換に専念し続けます。
ワークフローに組み込む
典型的な使い方は、タブを使っていたソースからコピーしたスニペットを、スペースを必要とするプロジェクトに貼り付けるにあたり、それをプロジェクトの幅に変換し、すでに正しくインデントされた状態で配置することです。エディターの自動整形機能が設定されていなかったり利用できなかったりするときの、その場限りの整理にも便利です。
すべてがアップロードなしでブラウザ内で動作するため、独自のコードや機密のコードも安全に変換でき、結果は即座に出るので、インデントが揃うまで異なる幅を試して比べることができます。
よくある質問
各タブはいくつのスペースに変換されますか?
コードでタブをスペースに変換するのはなぜですか?
先頭のインデントだけを置き換えますか、それともすべてのタブを置き換えますか?
改行やその他の空白は変わりますか?
無料ですか?コードはどこかにアップロードされますか?
関連ツール
こちらの便利なツールもどうぞ