Pythonのタブサイズがどうしても「4」にならない

Code

はじまり

リサちゃん
リサちゃん

コイツ、いつまで経っても「2」だな・・・

135ml
135ml

いつまでも「4」だな。

※当ページはアフィリエイト広告を利用しています。

Pythonのタブサイズがどうしても「2」になる。

ずーっとウザかった。Pythonのタブサイズがどうしても「4」にならなかった。というか、インデントのサイズがどうしても「4」にならなかった。

ほら。

どうして刻むんだ。

この「タブサイズ」と「インデントサイズ」の双方の概念を把握しているかどうかが、今回の問題の肝です。

最近、この問題がやっと解決したのでこの記事にメモしておきます。

解決法その1:設定のTab Size

最も基本的な項目です。

ここの設定では、基本的なタブのサイズが設定されます。しかし、僕は基本的にタブのサイズは「2」が良いと思っているので、ここは「2」のままで、Pythonの時だけ「4」にして欲しい。

ちなみに、settings.jsonだと"editor.tabSize"の項目に該当します。

解決法その2:「Detect Indentation」の設定

「Detect Indentation」という設定項目も見ておきます。

この設定がオンになっていると、ファイルのインデントを見て、そのファイルにおけるインデントのサイズを設定します。オフになっていれば、エディタで設定してあるインデントのサイズしか反映されないわけです。

個人的には、settings.jsonで設定した値だけを反映してほしいので、オフにしておきます。

ちなみに、settings.jsonだと"editor.detectIndentation"の項目に該当します。Falseにすればオフになります。

解決法その3:フォーマッタの設定

Prettierなどの拡張機能に対する設定でタブサイズやインデントサイズが設定されていないかどうかをも見るべきところです。しかし、僕はフォーマッタは入れていませんし、Pylintとかも入れていません。(ESLintは入っていますが今回は関係ありません。)

ちなみに、settings.jsonだと個々のフォーマッタ用の項目に該当したり、フォーマッタ用の設定ファイルで確認できますね。

解決法その4:.editorconfigのindent_size

「Editorconfig」は、コードエディタ間でファイル(コード)のフォーマットを一貫させるための機能です。そして、「.editorconfig」は、その設定ファイルの形式です。JetBrainsの各IDEや、AtomとかXcodeでも使えるみたいですね。

その.editorconfigをこんな風に設定してみます。

# Editor configuration, see https://editorconfig.org
root = true

[*.py]
indent_size = 4

設定してみると・・・やりました!

Pythonファイルの時にだけ、インデントのサイズが4になりました!

うーんでもなあ・・・、インデントのサイズを設定するためにわざわざ1つファイルを増やさなければならないのが気に入りません・・・。他に方法は無いのか?

解決法その5:settings.jsonでどちらか片方しか設定していない。

ここまで記事を書いてきて、何か気になります・・・。タブサイズ? インデントサイズ?

そう、もしかしたら、settings.jsonの中で、タブサイズもしくはインデントサイズの片方しか設定していないのではないでしょうか・・・。

僕のVSCodeがPythonのインデントをずっと「2」で表示し続けていた時のsettings.jsonのPythonにおける設定がこれです。

...

  "[python]": {
    "diffEditor.ignoreTrimWhitespace": false,
    "editor.tabSize": 4,
    "editor.formatOnPaste": true,
    "editor.formatOnSave": true
  },

...

そこで、このようにsettings.jsonを変更します。

...

  "[python]": {
    "diffEditor.ignoreTrimWhitespace": false,
    "editor.tabSize": 4,
    "editor.indentSize": 4, // <- New
    "editor.formatOnPaste": true,
    "editor.formatOnSave": true
  },

...

設定してみると・・・やりました!

Pythonファイルの時にだけ、タブおよびインデントのサイズが4になりました!

ちなみに、settings.jsonだと"editor.tabSize"もしくは"editor.indentSize"の項目に該当します。

まとめ

この記事を見ることで、古今東西の人のPython利用者のタブおよびインデントのサイズが「4」になることを願っています。

タブおよびインデントのサイズをどうにかしたいと思っている人は、他にもいらっしゃるみたいですね。(8スペースのタブを4スペースのインデントを設定する? そんなことあるの?)

How can I customize the tab-to-space conversion factor in VS Code?
How do I customize the tab-to-space conversion factor when using Visual Studio Code? For instance, right now in HTML it ...

Python関連の書籍

Python2年生 デスクトップアプリ開発のしくみ 体験してわかる!会話でまなべる!

Python2年生 デスクトップアプリ開発のしくみ 体験してわかる!会話でまなべる! | 森 巧尚 |本 | 通販 | Amazon
Amazonで森 巧尚のPython2年生 デスクトップアプリ開発のしくみ 体験してわかる!会話でまなべる!。アマゾンならポイント還元本が多数。森 巧尚作品ほか、お急ぎ便対象商品は当日お届けも可能。またPython2年生 デスクトップアプリ...

動かして学ぶ!Python FastAPI開発入門

動かして学ぶ!Python FastAPI開発入門 (NEXT ONE) | 中村 翔 |本 | 通販 | Amazon
Amazonで中村 翔の動かして学ぶ!Python FastAPI開発入門 (NEXT ONE)。アマゾンならポイント還元本が多数。中村 翔作品ほか、お急ぎ便対象商品は当日お届けも可能。また動かして学ぶ!Python FastAPI開発入門...

動かして学ぶ! Pythonサーバレスアプリ開発入門

Amazon.co.jp: 動かして学ぶ! Pythonサーバレスアプリ開発入門 (NEXT ONE) : 本田 崇智: 本
Amazon.co.jp: 動かして学ぶ! Pythonサーバレスアプリ開発入門 (NEXT ONE) : 本田 崇智: 本

おしまい

リサちゃん
リサちゃん

やっと「4」になった・・・!!

135ml
135ml

一生「2」にならないで欲しいな。

以上になります!

コメント

タイトルとURLをコピーしました