Visual Studio Code:形式はインデント設定を使用していません


143

Format CodeVisual Studio Codeでコマンドを使用すると、インデント設定("editor.tabSize": 2)が適用されません。代わりに4のタブサイズを使用しています。なぜこれが起こっているのですか?

ありがとう!


どの言語?Visual Studio Codeは、書式を言語フォーマッタに委任します。一部のフォーマッターはインデント設定を監視します。たとえば、OmniSharpによって処理され、omnisharp.jsonを使用して構成する必要があるC#
Ian Yang

これを理解するには長い時間がかかりました。タブとスペースインデントが混在する.csファイルがあり、すべてのタブでフォーマットしたいと思っていました(b / c行の大部分にはタブがありました)。「ドキュメントのフォーマット」と「フォーマットの選択」でさまざまな設定値を試しましたが、うまくいきませんでした。最後に、「インデントをタブに変換する」アクション(@Malekiの回答の画像を参照)を見つけ、それが私がやりたかったことでした。(私は最近ctrl-shift-pも発見しました!...はい、私はVS Codeを
使い始めました

回答:


228

書式設定に使用するスペースの数は、別の場所から取得されます。私はバージョン1.0を使用していますが、これはそれを修正するために行ったものです(タブの代わりにスペースを使用していると想定しています)。

エディターの右下にある[スペース:#]をクリックします。

右側のステータスバー

次に、メニューが上部に表示されます。「スペースを使用してインデント」を選択します。

インデントタイプを選択

最後に、ファイルをインデントするスペースの数で選択できます。

タブサイズを選択

次回ファイルをフォーマットするときに、設定した間隔を取得できるはずです。


28
この設定は、自動フォーマットを適用するときには使用されません(右クリック->フォーマットコード)。常に4つのスペースを使用します。
kiml42 16

両方が必要です-ワークスペースまたはエディター(または両方)の個人設定を構成します。新しいファイルはその設定を取得し、これらのスクリーンショットのように、たとえばステータスバーに「2」を表示します。次に、オートフォーマットできます。既存のファイルの場合、最初にワークスペース/エディターの設定を「タブを使用」または「スペースを使用」に設定し、スペースの数を設定してから、上記の方法で既存のファイルを自動フォーマットできます。
rmcsharry

5
ユーザー設定とワークスペース設定の両方を設定し、下部のバーに設定し、ファイルを再度開きます-それでもオートフォーマットは4つのスペースを使用しています...
Jared

3
ユーザーとワークスペースの両方のデフォルトを設定した後で、vscodeを終了して再起動する必要がありました。その後、それは私のJSファイルで4つのスペースを使用しようとするのをやめました。
John Pettitt 2016年

11
@Jared JS-CSS-HTMLプラグインを使用していると思います。その場合、を押しF1てフォーマッタを選択し、そこにインデントを設定します。上記のすべてのオプションをオーバーライドするようです。
Atif Mohammed Ameenuddin 2016年

111

Visual Studio Codeはデフォルトで現在のインデントを検出し、これを使用します-.editorconfigを無視します

「editor.detectIndentation」falseに設定 します

(ファイル->設定->設定)

スクリーンショット


これが発生した場合は、ファイル内のインデントに一貫性がない可能性があります。私はタブを使用してとしてではなく2のタブのサイズで検出されてしまった二つの空間(理由を知っている)との数行を除いてどこでもタブを持つファイル持っていた
isanae

49

@Malekiの回答がうまくいかない場合.editorconfigは、プロジェクトフォルダにファイルがあるかどうかを確認してください。

たとえば、Angular CLIは次のような新しいプロジェクトでプロジェクトを生成します

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

[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
max_line_length = off
trim_trailing_whitespace = false

indent_sizeここを変更すると、.vscodeワークスペースやユーザー設定のすべてが上書きされるように見えるため、ここを変更する必要があります。


5
IDEで変更を有効にするには、VSCodeを再起動する必要がありました。
ジョパックマン2018年

3
私の場合は、実際.editorconfigにはホームフォルダー内のファイルが原因でした。どういうわけかそれはVSCodeにワークスペース固有の設定を無視させます。とてもうるさい。
xji 2018

20

プラグイン(私の場合はVetur、vue.jsの場合)を使用している場合、これらは独自のタブ形式設定を設定する場合があります。

設定を開き、「フォーマット」を検索して、グローバルタブフォーマットを上書きしている可能性がある関連プラグイン設定を確認します。これでうまくいきました。Veturのタブ設定を好みに合わせて更新した場合(私の場合は4サイズのタブ)、. vueドキュメントのフォーマットが正しく機能し始めました。

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


私の場合、Prettierエクステンションの設定でもタブサイズを設定する必要がありました。
tonix、

ことは注目に値するSCSS Formatterのプラグインは、例えば独自の設定を使用していますので、あなたがに行かなければならないSettings > Extensions > SCSS Formatter > Use Tabs例えば、タブを使用するように強制します。
SmartyP

13

私自身、この問題はprettier、ワークスペースにきれいな設定ファイルがない状態でVSCodeプラグインを使用したことが原因でした。

プラグインを無効にすると問題が修正されました。また、おそらくよりきれいな設定に依存することで修正された可能性もあります。


1
私にとっては「Beautify」プラグインでした。
マシュー・スミス

「Clang-Format」と「.clang-format」設定ファイルで同じ問題がありました。
repkap11

6

JS-CSS-HTML Formatterなどのフォーマット拡張機能がインストールされている可能性があります

その場合は、コマンドパレットを開き、「Formatter」と入力してを選択しますFormatter Config。次に、必要に応じての値を編集します"indent_size"

PS編集後にVisual Studio Codeを再起動することを忘れないでください:)


6

以下の設定で問題が解決しました

  "editor.detectIndentation": false,
  "editor.insertSpaces": false,
  "editor.tabSize": 2,

タブが2つのスペースのみのファイルを処理する場合に機能します。
ドミニクス

2

タブがインデントされていないためにgoogleからここに来た場合は、「Tab Moves Focus」がオンになっている可能性もあります。右下にあり、十分に大きいモニターを使用している場合、強調表示されていても見逃す可能性があります。

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

緑の領域をクリックするか、Ctrl + Mで停止します。それを完全に無効にできるかどうかはわかりませんが、コードエディタがインデントのようなものをいじりたい理由がわかりません。


2

私は同様の問題を抱えていました-ユーザー設定にあるにもかかわらず、タブサイズを2に固定することができなかったとしても、結局EditorConfig拡張機能が原因でした。.editorconfig現在の作業ディレクトリでファイルを検索し、ファイルが見つからない場合(または指定されていない場合)、ファイルがroot=true見つかるまで親ディレクトリを探し続けます。

私判明は持っていた.editorconfig私はすべての私の新しいコードプロジェクトを入れて、それはファイルが私の問題を修正することを4削除のtabSizeを指定したディレクトリの親ディレクトリに。


1

私は時々これと同じ問題を抱えています。VSCodeは突然同じことを忘れてしまい、同じファイルを1日中インデントしていても、私が伝えるインデント設定を完全に無視します。

私はeditor.tabSize2に設定しました(およびeditor.formatOnSavetrueに設定しました)。VSCodeがファイルをめちゃくちゃにしたとき、エディタの下部にあるオプションを使用してインデントのタイプとサイズを変更し、何かがうまくいくことを期待していますが、VSCodeは実際には4のインデントサイズを使用することを強く求めています。

修正?VSCodeを再起動します。インデントステータスに問題があることを示すはずです(私の場合は4)。私にとっては、設定を変更してから保存して、実際に変更する必要がありましたが、それはおそらく私のeditor.formatOnSave設定が原因です。

なぜそれが起こるのかはわかりませんが、私にとっては、通常、JSファイル内のネストされたオブジェクトを編集しているときです。オブジェクト内で突然奇妙なインデントを実行しますが、しばらくそのファイルで作業していて、問題なくインデントされています。


0

VSCodeプラグインVetur; VueJSアプリケーションで使用された設定が上書きされました。

vetur.format.options.tabSizeを希望するスペース数に設定すると機能しました。


0

vscodeは.pyデフォルトでフォーマットするためにautopep8を使用していると思います。

"PEP 8-Pythonコードのスタイルガイド| Python.org"

このウェブサイトによると、vscodeが常に4つのスペースを使用する理由は次のとおりです。

インデントレベルごとに4つのスペースを使用します。


-1

すべてのプラグインを無効にします(次に、1つずつ有効にして確認します)

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