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

Jon Koops
la source
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 .

blom
la source
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

developerbmw
la source
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
24

Ajoutez ceci à votre ~/.atom/config.cson

editor:
    tabLength: 4
Leif Gruenwoldt
la source
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

Dit Kholov
la source
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é.

Craig
la source
7

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

essayer Ctrl-Shift-P Editor: Toggle Soft Tabs

OscarRyz
la source
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
ConorLuddy
la source
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.

jcuenod
la source
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é.

tparker
la source
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é.

Caiuby Freitas
la source
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.

Mike M
la source
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

Brett Zamir
la source
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.

Ed Halferty
la source
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'

Ed Randall
la source
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é.

ajpieri
la source
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

MK Hunter
la source