Comment changer le mode d'indentation dans Atom?


195

Je n'ai pas encore été en mesure de comprendre cela. Atom semble utiliser des espaces comme mode d'indentation par défaut. Je préfère avoir des onglets à la place. Sublime Text a une fonctionnalité intégrée pour la commutation et la conversion de l'indentation.

Quelqu'un a découvert comment changer le mode d'indentation d'Atom?

Quelques captures d'écran de Sublime Text:

Menu d'indentation de Sublime Text ouvert Menu de retrait de texte sublime


4
pour convertir l'indentation, vous pouvez faire une expression régulière rechercher et remplacer et utiliser \ t pour rechercher ou insérer des tabulations.
mer10z_tech

1
existe-t-il un moyen facile de changer le code actuel en 4 à partir du mode 2 indentation?
Charlie Parker

1
J'utilise le plugin auto-detect-indentation, qui non seulement configurera automatiquement la touche de tabulation pour faire tout ce qui est déjà dans le fichier, mais affiche le mode d'indentation en bas à gauche.
while1fork

@CharlieParker Allez dans les préférences, cliquez sur l'onglet éditeur et définissez l'indentation sur 4.
Craig

Remarque: Atom par défaut affiche et parcourt des espaces comme des tabulations! Voir la réponse de tparker ici: stackoverflow.com/a/46333677/1599699
Andrew

Réponses:


219

Voir Onglets contextuels et Longueur des onglets sous Paramètres> Paramètres de l'éditeur .

Pour basculer rapidement entre les modes d'indentation, vous pouvez utiliser Ctrl-Maj-P et rechercher Editor: Toggle Soft Tabs .


1
Comme @zamber l'a dit, si l'indentation automatique d'une page ne reprend pas vos paramètres d'indentation, rouvrez-la et réessayez.
Victor S

59
Tout comme une note latérale - les tabulations souples sont des caractères d'espacement comme des tabulations, les tabulations rigides sont des caractères de tabulation. Aussi si les paramètres ne sont pas respectés, essayezCtrl-Shift-P Editor: Toggle Soft Tabs
ivan-k

2
Je voudrais ajouter que AUCUNE des solutions de ce fil n'a fonctionné pour moi JUSQU'À ce que je passe à une police mono-espacée. Après être passé à une police mono-espacée, j'ai essayé chaque méthode et elles fonctionnent toutes. J'espère que cela aidera quelqu'un à l'avenir ...
Native Coder

existe-t-il un moyen facile de changer le code actuel en 4 à partir du mode 2 indentation?
Charlie Parker

Je ne vois aucun avantage à NE PAS utiliser une police à espacement fixe lors du codage, je dois l'admettre.
Frank Bailey

65

Allez dans Fichier -> Paramètres

Il y a 3 options différentes ici.

  1. Onglets souples
  2. Longueur de l'onglet
  3. Type d'onglet

J'ai fait quelques tests et suis arrivé à ces conclusions sur ce que chacun fait.

Onglets logiciels - L'activation de cette option signifie qu'il utilisera des espaces par défaut (c'est-à-dire pour les nouveaux fichiers).

Longueur de l'onglet - Quelle est la largeur du caractère de tabulation ou combien d'espaces sont insérés pour un onglet si les onglets logiciels sont activés.

Type de tabulation - Ceci détermine le mode d'indentation à utiliser pour les fichiers existants. Si vous le définissez sur auto, il utilisera l'indentation existante (tabulations ou espaces). Si vous le définissez sur soft ou hard, il forcera les espaces ou les tabulations indépendamment de l'indentation existante. Mieux vaut laisser cela sur auto.

Remarque: Soft = espaces, hard = tab


Vous pouvez également parler d' Atomic Soft Tabs ?
neeh

3
existe-t-il un moyen facile de changer le code actuel en 4 à partir du mode 2 indentation?
Charlie Parker

1
Merci d'avoir aidé à clarifier certains des jargons utilisés par Atom pour comprendre ce problème.
MiFiHiBye


15

OS X:

  1. Aller à Atom -> prefrencesouCMD + ,

  2. Faites défiler vers le bas et sélectionnez "Longueur de l'onglet" que vous préférez.

entrez la description de l'image ici


11

Vous pouvez essayer d'aller dans "Atom> Préférences> Editeur" et définir la longueur de l'onglet sur 4.

entrez la description de l'image ici

Ceci est pour mac. Pour les fenêtres, vous devrez trouver le menu approprié.


7

Ajout de la réponse @Manbroski ici qui a fonctionné pour moi:

essayer Ctrl-Shift-P Editor: Toggle Soft Tabs


6

En retard à la fête, mais une façon propre de le faire sur une base par projet, est d'ajouter un fichier .editorconfig à la racine du projet. Vous évite d'avoir à modifier les paramètres d'Atom lorsque vous travaillez sur plusieurs projets simultanément.

Ceci est un exemple d'une configuration très basique que j'utilise actuellement. Fonctionne pour Atom, ST, etc ...

http://editorconfig.org/

# Automatically add new line to end of all files on save.
[*]
insert_final_newline = true

# 2 space indentation for SASS/CSS
[*.{scss,sass,css}]
indent_style = space
indent_size = 2

# Set all JS to tab => space*2
[js/**.js]
indent_style = space
indent_size = 2

J'ai presque jeté Atom complètement jusqu'à ce que je voie ça. Les paramètres config.cson semblent ne rien faire pour les fichiers existants. Merci!
killthrush

3

Ceci est intégré au noyau: voir Settings ⇒ Tab Typeet choisir auto:

Lorsqu'il est défini sur "auto", l'éditeur détecte automatiquement le type d'onglet en fonction du contenu de la mémoire tampon (il utilise le premier espace blanc de début sur une ligne sans commentaire), ou utilise la valeur du paramètre de configuration Soft Tabs si auto- la détection échoue.

Vous voudrez peut-être également jeter un coup d'œil au package d' indentation de détection automatique . À partir de la documentation:

Détecte automatiquement l'indentation des fichiers ouverts. Il examine chaque fichier ouvert et définit les paramètres d'onglet spécifiques au fichier (onglets matériels / logiciels, longueur de tabulation) en fonction du contenu du fichier au lieu de toujours utiliser les valeurs par défaut de l'éditeur.

Vous pouvez avoir configuré atom pour utiliser 4 espaces pour les onglets, mais ouvrir un projet de rails qui par défaut est de 2 espaces. Sans ce package, vous auriez à modifier globalement vos paramètres tabstop ou risquer d'avoir un espacement des leads incohérent dans vos fichiers.


Si vous utilisez `` auto '' et qu'il se trompe (dans mon cas, il a été décidé d'utiliser des espaces lorsque je veux des onglets, sur ce fichier particulier), comment pouvez-vous (avec un menu rapide ou une frappe, sans fouiller dans les paramètres) changer d'avis? Je ne pense pas que l'auto-détection ait échoué, elle s'est juste trompée. Cela ne tapera pas un onglet dur pour moi. J'ai fait des recherches et des remplacements partout, mais la touche de tabulation insère toujours 4 espaces.
Ed Randall

Je n'aurais pas utilisé search-and-replacej'aurais utilisé la palette de commandes convert spaces to tabs(ou quelque chose comme ça). Je pense que cela a fonctionné pour moi dans le passé.
jcuenod

3

J'ai juste eu le même problème et aucune des suggestions ci-dessus n'a fonctionné. Enfin, j'ai essayé de décocher "Onglets logiciels Atomic" dans le menu Paramètres de l'éditeur, ce qui a fonctionné.


OH! C'est ce que ça veut dire! Je me demandais pourquoi mes touches fléchées sautaient les espaces alors qu'il n'y en avait pas \tdans le fichier ...
Andrew

2

Si vous utilisez la version 1.21.1:

  1. Cliquez sur Packages / Paramètres Afficher / Ouvrir
  2. Sélectionnez "Editeur" dans le panneau latéral gauche
  3. Faites défiler jusqu'à ce que vous voyiez "Longueur de l'onglet"
  4. Modifiez la valeur. J'aime le mettre à 4.

Maintenant, fermez simplement le volet de l'onglet actif et vous avez terminé.


2

Si vous utilisez Babel, vous pouvez également vous assurer de mettre à jour votre package "Language Babel". Pour moi, même si j'avais la longueur de tabulation définie sur 2 dans les paramètres de mon éditeur de base, le même paramètre dans la configuration de la langue Babel le remplaçait par 4.

Atom -> Preferences -> Packages -> (Search for Babel) -> Grammar -> Tab Length

Assurez-vous que la grammaire appropriée, il y a "Babel ES6 Javascript Grammar", "language-babel-extension Grammar" ainsi que "Regular Expression". Vous souhaitez probablement tous les mettre à jour pour être cohérents.


2

Tab Control donne un bon contrôle d'une manière similaire à celle décrite dans votre question.

La longueur de l'onglet ESLint est également intéressante pour les développeurs JavaScript pour utiliser la configuration ESLint.

Ou si vous utilisez un .editorconfigpour définir des règles d'indentation spécifiques au projet, il existe EditorConfig


1

Si les paramètres d'indentation globaux des tabulations / espaces ne correspondent plus à vos besoins (c'est-à-dire que vous travaillez avec des bases de code héritées avec des formats d'indentation variés, et que vous devez rapidement basculer entre eux, et la détection automatique ne fonctionne pas), vous pouvez essayer l'onglet -control plugin, qui duplique en quelque sorte la fonctionnalité du menu dans votre capture d'écran.


1

Quand la détection automatique de l'indentation d'Atom s'est trompée désespérément et a refusé de me laisser taper un caractère Tab littéral, j'ai finalement trouvé l' extension 'Force-Tab' - qui m'a redonné le contrôle. Je voulais garder shift-tab pour outdenting, alors réglez ctrl-tab pour insérer un onglet dur. Dans mon keymap, j'ai ajouté:

'atom-text-editor': 'ctrl-tab': 'force-tab:insert-actual-tab'


0

Toutes les réponses les plus populaires ici sont toutes d'excellentes réponses et activeront les espaces pour les onglets, mais il leur manque toutes une chose. Comment appliquer les espaces au lieu des tabulations au code existant.

Pour ce faire, sélectionnez simplement tout le code que vous souhaitez formater, puis allez dans Edition-> Lignes-> Indentation automatique et il corrigera tout ce qui est sélectionné.

Alternativement, vous pouvez simplement sélectionner tout le code que vous souhaitez formater, puis utiliser Ctrl Shift P et rechercher Auto Indent. Cliquez simplement dessus dans les résultats de la recherche et cela corrigera tout ce qui est sélectionné.


0

Modification de la configuration spécifique à la langue

J'ai changé les paramètres de l'onglet par défaut, et cela n'a toujours pas eu d'incidence sur la modification de mes fichiers, qui étaient des fichiers Python. Cela n'a pas non plus changé lorsque j'ai modifié le paramètre "*" dans ~ / .atom / config.cson. Je n'ai pas une bonne explication pour l'un ou l'autre de ceux-ci.

Cependant, lorsque j'ai ajouté ce qui suit à mon config.cson, j'ai pu changer l'onglet de mes fichiers Python en 2 espaces:

'.source.python':
  editor:
    tabLength: 2

Merci à cette ressource pour la solution: la touche de tabulation ne respecte pas la longueur de tabulation

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.