web-dev-qa-db-de.com

Visual Studio-Code: Format verwendet keine Einstellungen zum Einzug

Bei Verwendung des Befehls Format Code in Visual Studio Code werden die Einstellungen für den Einzug ("editor.tabSize": 2) nicht berücksichtigt. Stattdessen wird eine Tabulatorgröße von 4 verwendet. Irgendwelche Ideen, warum das passiert?

Vielen Dank!

90
AndyPerlitch

Die Anzahl der für die Formatierung zu verwendenden Leerzeichen wird von einem anderen Speicherort übernommen. Ich verwende Version 1.0 und habe dies getan, um das Problem zu beheben (ich gehe davon aus, dass Sie Leerzeichen anstelle von Tabulatoren verwenden):

Klicken Sie rechts im Editor auf "Leerzeichen: #":

 status bar on the right

Dann erscheint oben ein Menü. Wählen Sie "Einzug mit Leerzeichen":

 select indentation type

Schließlich können Sie auswählen, um wie viele Leerzeichen Ihre Dateien eingerückt werden sollen.

 select tab size

Beim nächsten Formatieren einer Datei sollten Sie den von Ihnen konfigurierten Abstand erhalten können.

157
Maleki

Visual Studio Code erkennt standardmäßig die aktuelle Einrückung und verwendet diese Einstellung, wobei die .editorconfig ignoriert wird

setze auch "editor.detectIndentation" auf false  

(Dateien -> Einstellungen -> Einstellungen)

58
jnkb

Wenn die Antwort von @ Maleki für Sie nicht funktioniert, prüfen Sie, ob sich in Ihrem Projektordner eine .editorconfig-Datei befindet.

Zum Beispiel generiert die Angular-CLI eines mit einem neuen Projekt, das so aussieht

# 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

Das Ändern von indent_size hier ist erforderlich, da anscheinend alles in Ihrem .vscode-Arbeitsbereich oder den Benutzereinstellungen überschrieben wird.

34
seangwright

Für mich selbst wurde dieses Problem verursacht, indem das VSCode-Plugin prettier verwendet wurde, ohne dass eine günstigere Konfigurationsdatei im Arbeitsbereich vorhanden war.

Das Deaktivieren des Plugins hat das Problem behoben. Möglicherweise wurde dies auch durch die Verwendung der schöneren Konfiguration behoben.

6
tailattention

Wahrscheinlich haben Sie eine Formatierungserweiterung installiert, z. JS-CSS-HTML Formatter .

Wenn dies der Fall ist, öffnen Sie einfach die Befehlspalette, geben Sie "Formatter" ein und wählen Sie Formatter Config aus. Bearbeiten Sie dann den Wert von "indent_size" wie gewünscht.

P.S. Vergessen Sie nicht, Visual Studio Code nach der Bearbeitung neu zu starten :)

5
Albert Timashev

Wenn Sie von Google hierher gekommen sind, weil der Tab nicht eingerückt ist, kann dies auch daran liegen, dass "Tab Moves Focus" aktiviert ist. Sie befindet sich unten rechts. Wenn Sie einen ausreichend großen Monitor haben, können Sie ihn trotz der Hervorhebung vermissen.

 enter image description here

Klicken Sie auf den grünen Bereich oder auf Strg + M, um den Vorgang zu beenden. Ich bin nicht sicher, ob es vollständig deaktiviert werden kann, aber ich weiß auch nicht, warum ein Code-Editor so etwas wie Einrückungen anstellen möchte.

2
StingyJack

die folgenden Einstellungen haben mein Problem gelöst

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

Ich hatte ein ähnliches Problem - egal was ich tat, ich konnte nicht die Tabsize dazu bringen, bei 2 zu bleiben, obwohl es in meinen Benutzereinstellungen ist - was am Ende auf die Erweiterung EditorConfig zurückzuführen ist. Es sucht nach einer .editorconfig-Datei in Ihrem aktuellen Arbeitsverzeichnis und wenn es keine findet (oder die Datei, die es nicht angibt, root=true angibt), sucht es nach übergeordneten Verzeichnissen, bis es eine findet.

Es stellte sich heraus, dass ich einen .editorconfig in einem übergeordneten Verzeichnis des Verzeichnisses hatte, in dem ich alle neuen Code-Projekte abgelegt hatte, und es eine TabSize von 4 angab. Durch das Löschen dieser Datei wurde mein Problem behoben.

2
bantic

Wenn Sie ein Plugin verwenden (in meinem Fall Vetur für vue.js), können diese ihre eigenen Formatierungseinstellungen für die Registerkarten festlegen.

Öffnen Sie Ihre Einstellungen, suchen Sie nach "Format" und suchen Sie nach relevanten Plugin-Einstellungen, die möglicherweise das globale Tab-Format überschreiben. Das hat für mich funktioniert; Nachdem ich die Einstellungen der Registerkarte "Vetur" an meine Präferenzen angepasst hatte (in meinem Fall 4 Registerkarten), funktionierten die .vue-Dokumente ordnungsgemäß:

 enter image description here

2
Ciabaros

Ich habe manchmal das gleiche Problem. VSCode wird einfach plötzlich den Verstand verlieren und jegliche Einrückungseinstellungen, die ich sage, völlig ignorieren, auch wenn die gleiche Datei den ganzen Tag einwandfrei eingerückt wurde.

Ich habe editor.tabSize auf 2 gesetzt (sowie editor.formatOnSave auf true). Wenn VSCode eine Datei durcheinander bringt, verwende ich die Optionen am unteren Rand des Editors, um Typ und Größe der Einrückung zu ändern. Ich hoffe, dass etwas funktioniert, aber VSCode besteht darauf, eine Einrückungsgröße von 4 zu verwenden.

Die Reparatur? Starten Sie VSCode neu. Es sollte zurückkommen, wenn der Einrückungsstatus etwas Falsches anzeigt (in meinem Fall 4). Für mich musste ich die Einstellung ändern und dann speichern, um die Änderung tatsächlich vorzunehmen, aber das liegt wahrscheinlich an meiner editor.formatOnSave-Einstellung.

Ich habe nicht herausgefunden, warum es passiert, aber normalerweise bearbeite ich ein verschachteltes Objekt in einer JS-Datei. Es wird plötzlich sehr seltsame Einrückungen innerhalb des Objekts ausführen, auch wenn ich schon eine Weile in dieser Datei gearbeitet habe und es gut eingezogen wurde.

1
MrOBrian

Ich denke, dass vscode autopep8 verwendet, um .py standardmäßig zu formatieren.

"PEP 8 - Style Guide für Python Code | Python.org"

Laut dieser Website kann das Folgende erklären, warum vscode immer 4 Leerzeichen verwendet.

Verwenden Sie 4 Leerzeichen pro Einrückungsstufe.

0
Season Choi

Das VSCode-Plugin Vetur; Die für VueJS-Anwendungen verwendete Einstellung hat die Einstellung für mich überschrieben. 

Durch die Einstellung von vetur.format.options.tabSize auf meine bevorzugte Anzahl von Leerzeichen konnte es funktionieren.

0
Swoot