pycharmは自動的にタブをスペースに変換します


110

私はpython開発にpycharm IDEを使用していますが、djangoコードでは完全に正常に機能するため、タブをスペースに変換することがデフォルトの動作であると疑われていますが、Python IDEでは、タブをスペースに自動的に変換できないため、どこでもエラーが発生します。この。

回答:


124

タブの代わりにスペースを使用するようにコードスタイルを変更します。

スペース

次に、プロジェクトビューで変換するフォルダーを選択し、Code| コードの再フォーマット


30
これは私のデフォルト設定でしたが、機能していないIDEにバグがあったようです。編集>インデントの変換>スペース
Vaibhav Mishra

1
Pythonには4スペースのインデントが必要です。
Josh

2
この答えは私にはうまくいきません。それがOPでも機能しないため、なぜそれが受け入れられたのかわかりません。フォローアップの質問:stackoverflow.com/questions/47102828/...
ステファン・Monov

3
私の場合、知らないうちに~/.editorconfigPyCharmの設定を上書きするファイルがあったため、Editor-> Code Style-> Enable Editor Config SupportでEditor Configを無効にする必要がありました。
好戦的なチンパンジー

1
一般的な「コードスタイル」で「既存のファイルインデントを検出して編集に使用する」のチェックを外すと、既存のファイルでもスペースを使用するように強制できます。その後、既存のファイルでtabと入力すると、タブではなくスペースがすぐに挿入されます。
David Kinghorn、

64

選択の場合、「スペースへ」機能を使用して選択を変換することもできます。私は通常、ctrl-shift-Aを使用してそれを使用し、そこから「To Spaces」を見つけます。


一度に複数のファイルに対して機能しないようです。ファイルごとに個別に行うのは面倒です...
CGFoX

あなたはサー、人生の味
ジャガーノート

61

これは、何も変更せずにタブのみを変換します。

Edit -> Convert Indents -> To Spaces

1
ねえ、これは受け入れられるべきです。ローカルで動作します。たとえば、インデントとしてタブを必要とするMakefileに便利です
swdev

9

Ctrl + Shift + A =>ポップウィンドウを開いてオプションを選択するか、スペースに選択してすべてのタブをスペースとして変換するか、タブに移動してすべてのスペースをタブとして変換します。


タブとして変換するタブ?それはタイプミスですか?
Anvesh Yalamarthy

7

PyCharm 2019.1

一般設定を変更する場合:

MacOSので開く設定、;またはWindows / LinuxではCtrl+ Alt+ S

Editor-> Code Style-> Pythonに移動し、PEP-8を使用する場合は、以下に示すように、タブサイズ:4インデント:4、および継続インデント:8を選択します。

ここに画像の説明を入力してください

変更を適用し、[OK]をクリックします。

現在のファイルだけに変更を適用したい場合

オプション1:ナビゲーションバーで[編集]-> [インデントの変換]-> [スペースに]を選択できます。(下の画像を参照)

ここに画像の説明を入力してください

オプション2:[ アクションを検索]ショートカットを実行することにより、「スペースへ」アクションを実行できます:AmacOSまたはctrlAWindows / Linux。次に「スペースへ」と入力し、次の画像に示すようにアクションを実行します。

ここに画像の説明を入力してください


1

ctr + alt + shift + L->ファイル全体を再フォーマットします:)


タブへの変換は、既存のコードブロックの変換には機能しませんでした。これは私のために働いた唯一の解決策です。ありがとう!
ジェド

0

私にとっては、タブ設定を上書きする〜/ .editorconfigというファイルがありました。私はそれを削除しました(確かにそれはいつか再び私を噛むでしょう)が、それは私のpycharmの問題を修正しました

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.