Convertir les espaces en tabulations

140

J'écris TypeScriptetHTML fichiers, et les onglets sont convertis en espaces.

Dans mon TypeScriptprojet, chaque onglet se convertit en espaces, je souhaite le désactiver et avoir un onglet au lieu d'espaces.

Voici mes paramètres:

{
  "editor.insertSpaces": false
}

MODIFIER 1:

Cela semble fonctionner dans les .htmlfichiers, mais pas dans les .tsfichiers.

Matan Yedayev
la source

Réponses:

248

Il existe 3 options dans .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.detectIndentationle détecte de votre fichier, vous devez le désactiver. Si cela n'a pas aidé, vérifiez que vous n'avez pas de paramètres avec une priorité plus élevée. Par exemple, lorsque vous l'enregistrez dans les paramètres utilisateur, il peut être écrasé par les paramètres de l'espace de travail qui se trouvent dans votre dossier de projet.

Mettre à jour:

Vous pouvez simplement ouvrir Fichier » Préférences » Paramètres ou utiliser le raccourci:

CTRL+ , (Windows, Linux)

+ , (Mac)

Mettre à jour:

Vous avez maintenant une alternative à la modification manuelle de ces options.
Cliquez sur le sélecteur Espaces: 4 en bas à droite de l'éditeur:
Ln44, col.  [Espaces: 4].  UTF-8 avec BOM.  CTRLF.  HTML.  :)

Lorsque vous souhaitez convertir les ws existants en onglet, installez l'extension à partir de Marketplace
EDIT:
pour convertir l'indentation existante d'espaces en tabulations, appuyez sur Ctrl+ Shift+P et tapez:

>Convert indentation to Tabs

Cela modifiera l'indentation de votre document en fonction des paramètres définis en onglets.

v-andrew
la source
1
@Viragos settings.json
v-andrew
2
Comment exécuter cette commande pour tous les fichiers de mon espace de travail.
Vijender Kumar le
135

Pour modifier les paramètres de l'onglet, cliquez sur la zone de texte à droite du texte Ln / Col dans la barre d'état en bas à droite de la fenêtre vscode.

Le nom peut être Tab Sizeou Spaces.

Un menu apparaîtra avec toutes les actions et paramètres disponibles.

entrez la description de l'image ici

Eric Bole-Feysot
la source
3
Pour moi, cela ne modifie ces paramètres que pour le fichier particulier que je consulte actuellement. Les autres fichiers du projet conservent leurs anciens paramètres. Comment le définiriez-vous universellement?
Kyle Vassella
Je remplace généralement tous mes fichiers à la fois, si nécessaire, en effectuant une recherche de projet pour le regex simple `{4}` et en le remplaçant par \ t (pour les onglets). En général, jetez également un œil sur les correspondances pour vous assurer que rien ne se cassera comme les chaînes de caractères sur plusieurs lignes, etc.
cosaque
26

Ctrl+ Shift+ P, puis "Convertir l'indentation en tabulations"

Carlsborg
la source
13

Si vous souhaitez utiliser des tabulations au lieu d'espaces

Essaye ça:

  1. Allez dans FilePreferencesSettingsou appuyez simplement sur Ctrl + ,
  2. Dans la barre des paramètres de recherche en haut, insérereditor.insertSpaces
  3. Vous verrez quelque chose comme ceci: Editeur: Insérer des espaces et il sera probablement vérifié. Décochez-le simplement comme indiqué dans l'image ci-dessous

Éditeur: Insérer des espaces

  1. Recharger Visual Studio Code (appuyez sur F1➤ tapez reload window➤ appuyez sur Enter)

Si cela ne fonctionne pas, essayez ceci:

C'est probablement à cause du plugin JS-CSS-HTML Formatter installé

(Vous pouvez le vérifier en allant sur FilePreferencesExtensionsou en appuyant simplement sur Ctrl + Shift + X , dans la liste Activé, vous trouverez le formateur JS-CSS-HTML )

Si c'est le cas, vous pouvez modifier ce plugin:

  1. Appuyez sur F1➤ tapez Formatter config➤ appuyez sur Enter(cela ouvrira le fichier formatter.json)
  2. Modifiez le fichier comme ceci:
 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. Enregistrez-le (allez à FileSaveou appuyez simplement sur Ctrl + S )
  2. Recharger Visual Studio Code (appuyez sur F1➤ tapez reload window➤ appuyez sur Enter)
Alex Logvin
la source
Si vous voulez des espaces au lieu de tabulations, modifiez le formatter.jsonfichier: mettez un espace dans n'importe quel guillemet au lieu de \t(Ainsi "\t"est devenu " "), et mettez 4 là où vous voyez 1 . Alors vous venez pourrait être comme ça "indent_size": 4, "indent_char": " " "indent_size": 4, "indentCharacter": " ", "indent_char": " ", "indent_size": 4, "indent_char": " ", "indent_character": " "
Alex Logvin
1
L'étape RELOAD WINDOW était ce qui me manquait. Frustrant d'avoir passé le processus de cocher les cases et de bidouiller les paramètres 3 fois pour qu'aucun changement ne soit pris, alors que tout ce que j'avais à faire était de recharger la fenêtre. Merci pour le conseil!
Rin and Len
8

Dans mon cas, le problème était l' extension JS-CSS-HTML Formatter installée après la mise à jour de janvier. La indent_charpropriété par défaut est l'espace. Je l'ai désinstallé et le comportement étrange s'arrête.

Vinicios Torres
la source
Oh oui, c'était le vrai problème pour moi. passer beaucoup de temps à bricoler le réglage du code VS. enfin, la désactivation de cette extension a résolu le problème.
Avijeet
8

Vérifiez cela à partir du paramètre officiel de vscode:

// 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
}
Xin
la source
7

Les réglages ci-dessous fonctionnent bien pour moi,

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

Les paramètres ci-dessus seront reflétés et appliqués à tous les fichiers. Vous n'avez pas besoin d'indenter / formater chaque fichier manuellement.

Rohan Kumar
la source
3

Fichier -> Préférences -> Paramètres ou appuyez simplement sur Ctrl+ ,et recherchez des espaces , puis désactivez simplement cette option:

entrez la description de l'image ici

J'ai dû rouvrir le fichier pour que les modifications prennent effet.

lama12345
la source
1
  1. Mettez en surbrillance votre code (dans le fichier)
  2. Cliquez sur Taille de l'onglet dans le coin inférieur droit de la fenêtre de l'application Taille de l'onglet dans le coin inférieur droit de l'image de la fenêtre d'application
  3. Sélectionnez la conversion appropriée en onglets. Sélectionnez l'image appropriée Convertir l'indentation en onglets
RealScatman
la source
1

Si vous voulez changer les onglets en espaces dans beaucoup de fichiers, mais que vous ne voulez pas les ouvrir individuellement, j'ai trouvé que cela fonctionne aussi bien d'utiliser simplement la fonction Rechercher et remplacer option dans la barre d'outils la plus à gauche.

Dans la première case ( Find), copiez et collez un onglet à partir du code source.

Dans la deuxième case ( Replace), entrez le nombre d'espaces que vous souhaitez utiliser (c'est-à-dire 2 ou 4).

Si vous appuyez sur le ...bouton, vous pouvez spécifier les répertoires à inclure ou à ignorer (c'est-à-dire src/Data/Json).

Enfin, inspectez l'aperçu du résultat et appuyez sur Remplacer tout . Tous les fichiers de l'espace de travail peuvent être affectés.

kvanberendonck
la source
0
{
  "editor.insertSpaces": true
}

True travaille pour moi.

ilovethedrama
la source