Comment changer l'indentation dans Visual Studio Code?


345

Pour chaque fichier dactylographié, le code Visual Studio utilise une indentation automatique de 8 espaces. C'est un peu trop à mon goût mais je ne trouve pas où le changer.

Peut-être qu'il est disponible en tant que paramètre mais sous un nom différent car je ne trouve rien lié à l'indentation.

METTRE À JOUR

J'utilise actuellement le formateur de code Prettier et cela résout tous les problèmes de formatage en formatant automatiquement lors de l'enregistrement (s'il n'y a pas d'erreur de syntaxe)

Réponses:


115

Vous pouvez changer cela au Userniveau global ou au Workspaceniveau.

Ouvrez les paramètres: À l' aide du raccourci ctrl + ,ou en cliquant sur File> Preferences> Settingscomme indiqué ci - dessous.

Paramètres du menu VS Code

Ensuite, effectuez les 2 modifications suivantes: (tapez tabSizedans la barre de recherche)

  1. Décochez la case de Detect Indentation
  2. Modifiez la taille de l'onglet à 2/4 (bien que je pense fortement que 2 est correct pour JS :))

entrez la description de l'image ici


1
Veuillez utiliser 4 espaces pour l'indentation.
Bohdan Kuts

4
@BohdanKuts ha ha, ce sera un argument sans fin
Xin

Oui :) J'ai fait une recherche pour cela et j'ai trouvé pourquoi c'est devenu 2 espaces. Et pour moi, la raison semble dépassée, je recommanderai donc d'utiliser 4 espaces à coup sûr.
Bohdan Kuts

1
C'est subjectif et n'a aucun avantage réel, je garde 2 espaces pour certains types de fichiers comme js, html et css, et 3 espaces pour le code, juste pour la lisibilité. En HTML et XML avec 4 espaces, vous devrez faire défiler vers la droite très bientôt.
Pablo Pazos

574

Dans la barre d'outils dans le coin inférieur droit, vous verrez un élément qui ressemble à ce qui suit: entrez la description de l'image ici Après avoir cliqué dessus, vous aurez la possibilité de mettre en retrait en utilisant des espaces ou des tabulations. Après avoir sélectionné votre type de retrait, vous aurez alors la possibilité de modifier la taille d'un retrait. Dans le cas de l'exemple ci-dessus, l'indentation est définie sur 4 caractères d'espace par retrait. Si l'onglet est sélectionné comme caractère d'indentation, vous verrez alors la taille de l'onglet au lieu des espaces

Si vous souhaitez que cela s'applique à tous les fichiers et non sur une base de fichier individuelle, remplacez les paramètres Editor: Tab Sizeet Editor: Insert Spacesdans les paramètres utilisateur ou les paramètres de l'espace de travail en fonction de vos besoins

Modifier 1

Pour accéder aux paramètres de votre utilisateur ou de votre espace de travail, accédez à Préférences -> Paramètres . Vérifiez que vous vous trouvez dans l' onglet Utilisateur ou Espace de travail selon vos besoins et utilisez la barre de recherche pour localiser les paramètres. Vous pouvez également vouloir désactiver Editor: Detect Indentationcar ce paramètre remplacera ce que vous avez défini Editor: Insert Spaceset Editor: Tab Sizequand il est activé


Le lien d'image est rompu.

34
La modification editor.tabSpacesne modifie pas l'espacement dans tous les fichiers. Il ne le modifie que pour les fichiers créés ultérieurement. Il n'y a toujours pas de solution pour réparer tous les fichiers en une seule action.
Jacob Stamm

3
sensationnel. l'esprit soufflé. parfois les choses se cachent à la vue
pingo

4
C'est super intuitif. J'ai déjà défini une indentation pour utiliser les espaces. Pourquoi dois-je cliquer sur l'option d'espaces pour accéder à un deuxième menu caché pour définir le nombre d'espaces? Tous les autres éditeurs que j'ai utilisés sont un clic sur les détails de l'indentation dans la barre d'état et il y a une option de plusieurs espaces. Dans VS Code, je dois rechercher ceci sur Stack Overflow parce que le menu que je veux est caché derrière une option que je n'essaie pas de changer.
ian.pvd

1
il semble toujours revenir à la valeur par défaut de 4 espaces chaque fois que je crée un nouveau fichier?!?!
oldboy

143

Pour modifier l'indentation en fonction du langage de programmation :

  1. Ouvrez la palette de commande ( CtrlShiftP| macOS: P)
  2. Préférences: Configuration des paramètres spécifiques de la langue ... (commande id: workbench.action.configureLanguageBasedSettings)
  3. Sélectionnez le langage de programmation (par exemple TypeScript)
  4. Ajoutez ce code:

    "[typescript]": {
        "editor.tabSize": 2
    }
    

Voir aussi: VS Code Docs


Comment (où) utilise-t-on l'ID de commande? Je ne vois pas "Configurer les paramètres spécifiques à la langue" sous Préférences de fichier.
Alan Baljeu

@AlanBaljeu vous pouvez utiliser l'ID de commande pour les raccourcis clavier, les extensions, etc. Vous pouvez donc aller dans Fichier > Préférences > Raccourcis clavier , coller l'ID dans l'entrée et affecter par exemple Ctrl + K Ctrl + L à la commande.
Martin Schneider

55

Vous pouvez également définir la valeur editor.detectIndentationfalse, en plus de la réponse d'Elliot-J.

VSCode remplacera vos paramètres editor.tabSizeet editor.insertSpacespar fichier s'il détecte qu'un fichier a un modèle d'indentation de tabulation ou d'espaces différent. Vous pouvez rencontrer ce problème si vous ajoutez des fichiers existants à votre projet ou si vous ajoutez des fichiers à l'aide de générateurs de code comme Angular Cli. Le paramètre ci-dessus empêche VSCode de le faire.


44

Raccourci de mise en forme du code:

VSCode sous Windows - Maj + Alt + F

VSCode sur MacOS - Maj + Option + F

VSCode sur Ubuntu - Ctrl + Maj + I

Vous pouvez également personnaliser ce raccourci en utilisant le paramètre de préférence si nécessaire.

sélection de colonne avec clavier Ctrl + Shift + Alt + Arrow


1
Shift + Alt + Fchangé tous les retraits de mon fichier de 8 espaces à mes 4 espaces par défaut. Exactement ce que je cherchais :)
Harry12345

24

Dans mon cas, l' extension " EditorConfig for VS Code " remplace les paramètres VSCode. Si vous l'avez installé, vérifiez le fichier .editorconfig dans le dossier racine du projet.

Voici un exemple de configuration. "Indent_size" définit le nombre d'espaces pour un onglet.

# editorconfig.org
root = true

[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false

7

Explication simplifiée avec des images pour ceux qui ont googlé "Changer l'indentation dans le code VS"

Étape 1: cliquez sur Préférences> Paramètres

entrez la description de l'image ici

Étape 2: Le paramètre que vous recherchez est "Détecter l'indentation", commencez à le saisir. Cliquez sur "Editeur: Taille de l'onglet"

entrez la description de l'image ici

Étape 3: faites défiler vers le bas jusqu'à "Éditeur: Taille de l'onglet" et tapez 2 (ou tout ce dont vous avez besoin).

entrez la description de l'image ici



Les modifications sont automatiquement enregistrées

entrez la description de l'image ici

Exemple de mes changements

entrez la description de l'image ici


6

Pour définir tous les fichiers existants et les nouveaux fichiers sur une identification d'espace à 2, placez-le simplement dans votre settingns.json (à la racine de json):

"[typescript]": {
        "editor.defaultFormatter": "vscode.typescript-language-features",
        "editor.tabSize": 2,
        "editor.insertSpaces": true,
        "editor.detectIndentation":false
 }

vous pouvez ajouter le type de langue de la configuration:

"[javascript]": {
    "editor.tabSize": 2,
    "editor.insertSpaces": true,
    "editor.detectIndentation":false
} 

Ces jours-ci, j'utilise prettier.js et le plugin js car il prend soin de l'espacement et des autres alignements de longues lignes ainsi que de la plupart des choses.
HMR du

1
Merci, réponse géniale, meilleure façon pour moi.
Swetabja Hazra

5

Comment transformer 4 espaces en retrait dans tous les fichiers de VS Code en 2 espaces

  • Ouvrir la recherche de fichiers
  • Activer les expressions régulières
  • Entrez: ( {2})(?: {2})(\b|(?!=[,'";\.:\*\\\/\{\}\[\]\(\)]))dans le champ de recherche
  • Entrez: $1dans le champ remplacer

Comment transformer 2 espaces en retrait dans tous les fichiers dans VS Code en 4 espaces

  • Ouvrir la recherche de fichiers
  • Activer les expressions régulières
  • Entrez: ( {2})(\b|(?!=[,'";\.:\\*\\\/{\}\[\]\(\)]))dans le champ de recherche
  • Entrez: $1$1dans le champ remplacer

REMARQUE: vous devez d'abord activer PERL Regex. C'est ainsi:

  • Ouvrez les paramètres et accédez au fichier JSON
  • ajoutez ce qui suit au fichier JSON "search.usePCRE2": true

J'espère que quelqu'un le verra.


1
Spécifiquement pour VS Code, il y a aussi une extension pour convertir 4 à 2 espaces.
tanius

4

Problème: la réponse acceptée ne corrige pas réellement le retrait dans le document actuel.

Solution: exécutez Format Documentpour retraiter le document en fonction des (nouveaux) paramètres actuels.

Problème: Les documents HTML de mes projets sont de type "Django HTML" et non "HTML" et aucun formateur n'est disponible.

Solution: passez-les à la syntaxe "HTML", formatez-les, puis revenez à "Django HTML".

Problème: le formateur HTML ne sait pas comment gérer les balises de modèle Django et annule une grande partie de mon imbrication soigneusement appliquée.

Solution: installez l' extension Indent 4-2 , qui effectue strictement l'indentation, sans tenir compte de la syntaxe actuelle du langage (ce que je veux dans ce cas).


2

Je voulais changer l'indentation de mon fichier HTML existant de 4 espaces à 2 espaces.

J'ai cliqué sur le bouton «Espaces: 4» dans la barre d'état et les ai remplacés par deux dans la boîte de dialogue suivante.

J'utilise l'extension 'vim'. Je ne sais pas comment ré-indenter sans vim

Pour ré-indenter mon fichier actuel, j'ai utilisé ceci:

gg

=

G

0

Ajout: oui, vous pouvez utiliser l'interface utilisateur en bas à droite pour configurer les paramètres d'espace. Mais si vous avez un code existant qui n'est pas formaté selon le nouvel espacement, vous pouvez cliquer avec le bouton droit n'importe où dans le fichier et cliquer sur Format du document . Il m'a fallu un certain temps pour comprendre cela jusqu'à ce que je tombe sur cette question .

Menu Format du document

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.