Konvertieren Sie Leerzeichen in Tabulatoren


137

Ich schreibe TypeScriptund HTMLDateien, und Tabulatoren werden in Leerzeichen konvertiert.

In meinem TypeScriptProjekt wird jede Registerkarte in Leerzeichen konvertiert. Ich möchte sie deaktivieren und anstelle von Leerzeichen eine Registerkarte verwenden.

Dies sind meine Einstellungen:

{
  "editor.insertSpaces": false
}

EDIT 1:

Es scheint in .htmlDateien zu funktionieren , aber nicht in .tsDateien.

Antworten:


246

Es gibt 3 Optionen in .vscode/settings.json:

// The number of spaces a tab is equal to.
"editor.tabSize": 4,

// Insert spaces when pressing Tab.
"editor.insertSpaces": true,

// When opening a file, `editor.tabSize` and `editor.insertSpaces` will be detected based on the file contents.
"editor.detectIndentation": true

editor.detectIndentationerkennt es aus Ihrer Datei, müssen Sie es deaktivieren. Wenn es nicht geholfen hat, überprüfen Sie, ob Sie keine Einstellungen mit höherer Priorität haben. Wenn Sie es beispielsweise in den Benutzereinstellungen speichern, kann es durch die Arbeitsbereichseinstellungen in Ihrem Projektordner überschrieben werden.

Aktualisieren:

Sie können einfach Datei » Einstellungen » Einstellungen öffnen oder die Verknüpfung verwenden:

CTRL+ , (Windows, Linux)

+ , (Mac)

Aktualisieren:

Jetzt haben Sie eine Alternative zum manuellen Bearbeiten dieser Optionen.
Klicken Sie unten rechts im Editor auf Auswahlbereiche : 4 :
Ln44, Col.  [Leerzeichen: 4].  UTF-8 mit Stückliste.  STRG.  HTML.  :) :)

Wenn Sie vorhandene ws in tab konvertieren möchten, installieren Sie die Erweiterung von Marketplace
BEARBEITEN:
Um vorhandene Einrückungen von Leerzeichen in Tabulatoren zu konvertieren, drücken Sie Ctrl+ Shift+P und geben Sie Folgendes ein:

>Convert indentation to Tabs

Dadurch wird der Einzug für Ihr Dokument basierend auf den definierten Einstellungen in Registerkarten geändert.


1
@ Viragos settings.json
v-andrew

1
Wie führe ich diesen Befehl für alle Dateien in meinem Arbeitsbereich aus?
Vijender Kumar

133

Um die Registerkarteneinstellungen zu ändern, klicken Sie in der Statusleiste unten rechts im vscode-Fenster auf den Textbereich rechts neben dem Ln / Col-Text.

Der Name kann Tab Sizeoder sein Spaces.

Ein Menü mit allen verfügbaren Aktionen und Einstellungen wird angezeigt.

Geben Sie hier die Bildbeschreibung ein


3
Für mich ändert dies nur diese Einstellungen für die bestimmte Datei, die ich gerade ansehe. Die anderen Dateien im Projekt behalten ihre alten Einstellungen bei. Wie würden Sie es universell einstellen?
Kyle Vassella

Normalerweise ersetze ich bei Bedarf alle meine Dateien auf einmal, indem ich eine Projektsuche nach dem einfachen regulären Ausdruck "{4}" durchführe und durch \ t (für Registerkarten) ersetze. Schauen Sie sich normalerweise auch die Übereinstimmungen an, um sicherzustellen, dass nichts so kaputt geht wie mehrzeilige Zeichenfolgenliterale usw. Wenden Sie diese Einstellungen natürlich so an, dass auch Ihre neuen Einrückungen die gewünschten Zeichen sind!
cossacksman

25

Ctrl+ Shift+ P, dann "Einrückung in Tabulatoren konvertieren"


13

Wenn Sie Tabulatoren anstelle von Leerzeichen verwenden möchten

Versuche dies:

  1. Gehen Sie zu FilePreferencesSettingsoder drücken Sie einfach Ctrl + ,
  2. In der Sucheinstellungsleiste oben einfügeneditor.insertSpaces
  3. Sie werden ungefähr so ​​etwas sehen: Editor: Leerzeichen einfügen und es wird wahrscheinlich überprüft. Deaktivieren Sie es einfach wie im Bild unten gezeigt

Editor: Leerzeichen einfügen

  1. Reload Visual Studio - Code (Press F1➤ Typ reload window➤ Presse Enter)

Wenn es nicht funktioniert hat, versuchen Sie Folgendes:

Es liegt wahrscheinlich am installierten Plugin JS-CSS-HTML Formatter

(Sie können es , indem Sie auf FilePreferencesExtensionsoder einfach nur drücken Ctrl + Shift + X , in der Aktiviert Liste Sie finden JS-CSS-HTML - Formatierer )

Wenn ja, können Sie dieses Plugin ändern:

  1. Drücken Sie F1➤ Typ Formatter config➤ drücken Enter(es wird die Datei öffnen formatter.json)
  2. Ändern Sie die Datei wie folgt:
 4|    "indent_size": 1,
 5|    "indent_char": "\t"
——|
24|    "indent_size": 1,
25|    "indentCharacter": "\t",
26|    "indent_char": "\t",
——|
34|    "indent_size": 1,
35|    "indent_char": "\t",
36|    "indent_character": "\t"
  1. Speichern Sie es (gehen Sie zu FileSaveoder drücken Sie einfach Ctrl + S )
  2. Reload Visual Studio - Code (Press F1➤ Typ reload window➤ Presse Enter)

Wenn Sie Leerzeichen anstelle von Tabulatoren möchten, ändern Sie die formatter.jsonDatei: Setzen Sie ein Leerzeichen in ein beliebiges Anführungszeichen anstelle von \t(So "\t"wurde " ") und setzen Sie 4 an die Stelle, an der Sie 1 sehen . Sie könnten also so kommen "indent_size": 4, "indent_char": " " "indent_size": 4, "indentCharacter": " ", "indent_char": " ", "indent_size": 4, "indent_char": " ", "indent_character": " "
Alex Logvin

1
Der Schritt RELOAD WINDOW war das, was mir fehlte. Es war frustrierend, dreimal die Kontrollkästchen aktiviert und an den Einstellungen herumgespielt zu haben, damit keine Änderungen vorgenommen werden konnten, als ich nur das Fenster neu laden musste. Danke für den Tipp!
Rin und Len

8

In meinem Fall war das Problem die nach dem Januar-Update installierte JS-CSS-HTML Formatter- Erweiterung. Die Standardeigenschaft indent_charist Leerzeichen. Ich habe es deinstalliert und das seltsame Verhalten hört auf.


Oh ja, das war das eigentliche Problem für mich. Verbringen Sie viel Zeit damit, Einstellungen im VS-Code vorzunehmen. Das endgültige Deaktivieren dieser Erweiterung löste das Problem.
Avijeet

8

Überprüfen Sie dies anhand der offiziellen vscode-Einstellung:

// Controls whether `editor.tabSize#` and `#editor.insertSpaces` will be automatically detected when a file is opened based on the file contents.
"editor.detectIndentation": true,

// The number of spaces a tab is equal to. This setting is overridden based on the file contents when `editor.detectIndentation` is on.
"editor.tabSize": 4,

// Config the editor that making the "space" instead of "tab"
"editor.insertSpaces": true,

// Configure editor settings to be overridden for [html] language.
"[html]": {
    "editor.insertSpaces": true,
    "editor.tabSize": 2,
    "editor.autoIndent": false
}

7

Die folgenden Einstellungen funktionieren gut für mich.

"editor.insertSpaces": false,
"editor.formatOnSave": true, // only if you want auto fomattting on saving the file
"editor.detectIndentation": false

Die obigen Einstellungen werden für alle Dateien angezeigt und angewendet. Sie müssen nicht jede Datei manuell einrücken / formatieren.


3

Datei -> Einstellungen -> Einstellungen oder drücken Sie einfach Ctrl+ ,und suchen Sie nach Leerzeichen . Deaktivieren Sie dann einfach diese Option:

Geben Sie hier die Bildbeschreibung ein

Ich musste die Datei erneut öffnen, damit die Änderungen wirksam wurden.


1
  1. Markieren Sie Ihren Code (in Datei)
  2. Klicken Sie in der unteren rechten Ecke des Anwendungsfensters auf die Registerkartengröße Registerkartengröße in der unteren rechten Ecke des Anwendungsfensterbilds
  3. Wählen Sie die entsprechende Einrückung in Registerkarten konvertieren aus Wählen Sie das entsprechende Bild "Einzug in Registerkarten konvertieren" aus

1

Wenn Sie Tabulatoren in Leerzeichen in vielen Dateien ändern möchten, diese aber nicht einzeln öffnen möchten, funktioniert es genauso gut, wenn Sie nur die Option Suchen und Ersetzen in der Symbolleiste ganz links verwenden.

FindKopieren Sie im ersten Feld ( ) eine Registerkarte aus dem Quellcode und fügen Sie sie ein.

Geben Sie im zweiten Feld ( Replace) die Anzahl der Leerzeichen ein, die Sie verwenden möchten (dh 2 oder 4).

Wenn Sie die ...Taste drücken, können Sie Verzeichnisse angeben, die eingeschlossen oder ignoriert werden sollen (dh src/Data/Json).

Überprüfen Sie abschließend die Ergebnisvorschau und klicken Sie auf Alle ersetzen . Alle Dateien im Arbeitsbereich sind möglicherweise betroffen.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.