コーディングで「スペース」と「タブ」のどちらを使えばいいのか?

「どちらがメジャーなのか?」という観点でいくと、2022年現在はスペースの方が圧倒的に多いみたいです。
確かに自分自身、他の人のコードを見ているとスペースの方が多く、タブが使われている場合は意識して合わせることが多いです。
既存コードに合わせるが前提
まず既存コードの修正の場合は、既存コードに合わせるのが大前提です。
スペース・タブが混在してしまうと、タブの設定によってはズレてしまいます。
また、コードの中身は変えていないのにタブをスペースに変えただけでもGit上では変更と認識されてしまいます。
スペースとタブの比較
スペース
半角スペースを偶数個入れてインデントします。
最近のテキストエディタでは、デフォルトでtabキーを押しても自動で半角スペースが入ってインデントできるようになっています。
スペースの場合は誰がどのテキストエディタで見ても、必ず半角スペース分の幅だけインデントされます。
タブ
タブはテキストエディタで幅を設定できます。
そのため、複数人で作業していても自分だけ好みの幅に設定して表示できます。
また、半角スペースは偶数個入力されるのに対して、タブは1つで字下げが表現できます。
スペースであるメリットとは?
スペースとタブを比較すると、タブの方が好みの幅に設定できるし便利なのでは?と思ってしまいます。
しかし、逆にタブは環境によって字下げの見た目が変わってしまうとも取れますし、ターミナルの画面など環境によってはタブをコピーすると自動的に半角スペースになることがあります。
コピペすると半角スペースになってしまうと、結局タブと半角スペースが混在してしまう恐れがあります。
スペースは明確にタブの幅が定義できますし、タブを直接持ってこない限り多くの場合はスペースとしてコピペされます。
コピペなどの操作でタブが混ざる可能性が低いのと、誰が見ても同じ見た目になるのがスペースのメリットです。
個人的にはそれぞれの環境で好みの幅にできた方が良いと思ってしまうのですが、スペースの方がメジャーですし、あえて逆らう必要もないので今後もスペースを基本にしていきそうです。


HTMLのpattern属性を使ってフォームのバリデーションチェックを行う方法
「DevTools z-index」でz-indexがかかっている要素をChrome開発者ツールに一覧表示させる
resizeイベントを使用する場合は、iOS Safariでの挙動に注意
Nuxt.jsでのページ遷移設定方法(Vue Routerやnuxt-link)|Nuxt.jsの基本
横幅が広がったときの挙動が変わる!CSS Gridの「auto-fill」と「auto-fit」の違い
MacでCLIツールをインストールするときに行うターミナルでの「パスを通す」とは一体なにか?
Vue CLIでの画像パスの指定方法・配置場所まとめ
Google Maps APIでピンをクリックしたときに吹き出しを表示する方法
iTerm2でさらに細かい機能の設定ができる環境設定の「Advanced」タブ
Emmetで複数のタグを一括展開して、コーディングスピードをさらに上げる方法
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
1つのノートアプリにすべて集約するのをやめた理由|2025年時点のノートアプリの使い分け
Notionログイン時の「マジックリンク」「ログインコード」をやめて普通のパスワードを使う
AlfredでNotion内の検索ができるようになるワークフロー「Notion Search」
Gitで1行しか変更していないはずのに全行変更した判定になってしまう
Macでアプリごとに音量を調節できるアプリ「Background Music」
Macのターミナルでパスワード付きのZIPファイルを作成する方法
MacBook Proでディスプレイのサイズ調整をして作業スペースを広げる
SteerMouseの「自動移動」機能で保存ダイアログが表示されたら自動でデフォルトボタンへカーソルを移動させる
iPhoneでタッチが一切効かなくなった場合に強制再起動する方法