ハードタブを使用しないでください 更新:この投稿は、コメント欄でのクレームのいくつかに対処するために更新されました。 これらの主張のほとんどが間違っていることに注意してください ハードタブ文字(ASCIIコード9)は、ソースコードファイルに応じた適切なときにいくつかの混乱があるように思われるように、ここのルールです: 1)ハードタブを使用しないでください 1. 1)ソースコードは(私が知っているだけで、このような形式はMakefileのある)ハードタブに敏感でなければ ハードタブを使用しない1つの理由 レガシーのため、別のテキストエディタは、別のハード・タブを扱います。 UNIXテキストエディタは、ハードタブは8スペースであることを好む、WindowsのテキストエディタやIDEの(Eclipseは)ハードタブが4空白であることを好みます。 別のテキストエディタとの間にハードタブ長合意に達することができません 人々の間にハードタブ長合意に達することができません ファイルを編集する一人以上存在する場合にこのように、ハードのタブは、ソースコードの読みやすさと編集可能性を破壊することがあります。 彼らは、別のタブの設定を使用してエディタでファイルを開いて編集し、次の時間はあなたがそれを台無しにされたファイルを開き、すべてのくぼみが間違っているでしょう。 これは実際に構文エラーやプログラミングロジックのエラーが発生する可能性があり、これはホワイトスペースに敏感な言語(PythonやCoffeeScriptの)上でさらに悪くなります あなたが代わりにソフトタブ(スペース)を使用してインデントを行う場合は、あなたが最初の場所でこの問題を回避することができます。 テキストファイルを編集して、世界で一人であったとしても、も、あなたはいくつかの点で、テキストエディタを切り替え、誤って足に自分自身を撮影する場合があります。 2.インデントにソフトタブを使用し、ハード・タブを持たないことはので、問題になることはありません ファイルを編集するとき、すべてのテキストエディタは、ハエでタブをスペースに変換することができます。 まだそれをしていないWindowsのメモ帳以外にも一般的に使用される編集者は、ある場合は、私に注意してください。 テキストエディタは通常、タブキーの長さやインデントの設定とは異なる設定があります。 後者は、あなたが本当に調整したいものです。 ハードタブを使用して3.疑似引数 これは、ファイルサイズが小さくなります:あなたは本当にあなたのギガバイトのハードディスク上のもの20バイトを気に? 私が作られたこの1:訪問者がファイルをダウンロードするためのスペースは、ウェブのもので、ファイルのサイズにカウントされます。 しかし、それらのバイトは本当にそのくらいの問題であれば、あなたが最初の場所で最小化を使用する必要があります。 私は彼らに引数が好き...:関与していない根拠を 人間の自然の中で変化抵抗 あなたは、そのレガシースタイルガイドを持つレガシーソフトウェアプロジェクトがあるかもしれません。 プロジェクトが大きな場合には、例えば Linuxカーネルは、スイッチングコストが非常に高く、手頃な価格ではないかもしれません。 しかし、コードベースのこの種の、あなたは徐々に離れてハードのタブを置き換えることができます。 4.スタイルガイド(更新) ハードタブのみMakefileの構文で必要なだけ移動のスタイルガイドで好ましいです。 人々は他の人で作業する場合、ハードタブが混乱を引き起こすことを経験から学ぶ持っているためです。 5.タブ文字が意味的にインデントレベルと同じではありません(更新) タブ文字がインデントすべきと言って何のスタイルガイドやコーディング規則はありません。 この仮定は、それはあなたが、砂に頭を固執周囲の世界を無視して、「ユーザーが自分のタブ幅を選択しましょう "マントラを歌うことによってすることができますので、作るのは簡単です。 しかし、狡猾なアイデアが、この知覚されるシンプルさがこの投稿を強調するためにしようとの互換性との協力の問題が発生します。 6.ユーザーが独自のタブ幅を選択する必要があります(更新) あなた自身の好みを選択するには、多くの人々が主張する根拠はタブでインデントしている理由です。 あなたは推薦は、プログラミング言語の勧告に固執することになっている他の人々で動作するようにインデントがあれば、「ユーザーがインデントに自分の好みを選択してみましょう」。 このように人々がコードベースを拾うより簡単にすることができます。 「タブ文字幅を調整することにより、ユーザchooseableインデント幅」を有することによって得られるものは何もありません。 最も使用されるインデント幅はとにかく4つのスペースであるため、代わりにユーザーpickableインデント幅番号を持っている自由を維持するために余分な労力です。 (下記参照)彼らは、エディタのタブ幅を調整する必要がありますいくつかの古いUNIX管理者に伝えるために行くようにしてください。 7.タブ幅は8のスペースであり、それを台無しにしない(更新) インデントとしてタブを使用人々はタブ1タブ= 1インデントを想定し、インデントが素敵に見えるように、彼らは自由に、タブ幅を調整することができます。 しかし、 レガシーでは、タブ文字の幅は8のスペースであり、ソフトウェアのほとんどはそこにこの仮定を行います。 あなたはタブ幅のために他の値を使用する場合は、この遺産社会契約を壊していると、あなたのプロジェクトで作業することがより困難で、他の人々のためにそれを作っています。 8スペースタブは、多くの場合(Linuxカーネルと同じように、システムのスタイルのCプログラミングにおける例外)インデントなどの意味がありませんので、これは本当に、インデントとしてタブを使用しての能力を制限します。 あなたはタブ幅の設定、このいずれかを持っており、それはあなたのソースコードプロジェクトのタブ幅を制御する世界で唯一の設定だだけでは唯一のテキストエディタでコードを使用して作業する場合には大丈夫です。 しかし、他の誰かが読んだり、コードを編集しなければならない場合 他の人はコードを読みやすくするためにタブ幅を調整する必要があります 他のツールチェーン(例えば、あなたが猫を使用して、端末のコードを表示している)を扱うとき8スペースからタブ幅を調整することは非常に困難であるかもしれません また、推奨インデントレベルが2つだけの空間である言語では、ちょうど2つのスペースを持っているために、1つのタブ文字を使用することが少しおかしいなるだろう。 8.タブが書式コードマルチライン機能を使用することはできません(更新) 一部の人々は、このような長い引数リストをフォーマットすることを好みます。 タブはインデントとして使用されている場合ので、混合タブとスペースの壊すPythonの例 9.テキストエディタ あなたはテキストエディタの作者であれば、あなたはファイルの種類によってタブのポリシーを変更する場合は、ハードのタブを使用して、テキストエディタ船は、特に空白敏感言語に対して、デフォルトではオフになっていることを確認します。 すべてのテキストエディタは、デフォルトではソフトタブに貼りいるだろう すべてのテキストエディタは、ハードタブに貼りいるだろう、デフォルトでは8スペースです しかし、いくつかの点で(?)誰かが(誰?)私たちの生活は、少し複雑にすることにしました。