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

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

はじまり#

リサちゃん avatar
リサちゃん
コイツ、いつまで経っても「2」だな・・・
135ml avatar
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スペースのインデントを設定する? そんなことあるの?)

Python関連の書籍#

Python2年生 デスクトップアプリ開発のしくみ 体験してわかる!会話でまなべる!amzn.to
Amazon.co.jpで購入する
動かして学ぶ!Python FastAPI開発入門amzn.to
Amazon.co.jpで購入する
動かして学ぶ! Pythonサーバレスアプリ開発入門amzn.to
Amazon.co.jpで購入する

おしまい#

リサちゃん avatar
リサちゃん
やっと「4」になった・・・!!
135ml avatar
135ml
一生「2」にならないで欲しいな。

以上になります!

記事を共有

この記事が役に立ったなら、ぜひ他の人と共有してください!

Pythonのタブサイズがどうしても「4」にならない
https://endorphinbath.com/posts/python-tabsize-not-4-but-2/
著者
kinkinbeer135ml
公開日
2024-12-15
ライセンス
CC BY-NC-SA 4.0
関連記事 スマート
1
【VSCode】Pythonのimport文の順番が勝手に入れ替わらないようにする(editor.formatOnPasteを使用)
Software VSCodeでPythonを編集しているときに、from文やimport文の順番が勝手に入れ替わってしまったので、その事象が起きないように設定する方法を紹介します。Pythonだけに適用する方法を取っています。
2
【Python】Pydanticのvalidatorが非推奨だからfield_validatorを使って2段階バリデーションを実装する
Code @validatorはdeprecatedになってるし、@field_validatorにはpreとかalwaysフラグが無いから、from pydantic.functional_validators import field_validatorでインポートしたfield_validatorを使用する方法と、BeforeValidatorとAfterValidatorをAnnotateの中に入れる実装方法を試した。
3
【Python】複数の区切り文字を指定して文字列を配列に分割する
Code Pythonで文字列を配列に分割するスクリプトを掲載します。分割文字は配列で指定するように作っています。
4
【Python】文字列の先頭と末尾にあるスペース、空白文字を削除する
Code Pythonで文字列の先頭と末尾にスペース(空白文字)が混じっていることがあります。そのスペースを削除するスクリプトを掲載します。
5
【Python】シェル上で出力した文字列で濁点が分かれてしまった文字(結合文字)を濁音に直すスクリプト
Code シェル上でファイル名などを出力した際に、バがバになってしまう場合があります。それをいちいち手作業で直すのがしんどいので、直してくれるスクリプトを作りました。テストコードもあります。
ランダム記事 ランダム
Profile Image of the Author
kinkinbeer135ml
SIerをやめて、プログラミングを勉強しています。※Amazonアソシエイトに参加しています。
お知らせ
私のブログへようこそ!これはサンプルのお知らせです。
音楽
カバー

音楽

再生中なし

0:00 0:00
歌詞なし
カテゴリ
タグ
サイト統計
記事
287
カテゴリー
8
タグ
93
総文字数
486,174
運用日数
0
最終活動
0 日前

目次