Comment changer Eclipse pour utiliser des espaces au lieu des tabulations?

895

Par défaut, Eclipse met en retrait avec un caractère de tabulation rigide. Comment le changer en espaces?

Brian Deacon
la source
43
@ i3ensays car les onglets sont présentés différemment dans différents éditeurs ou environnements, tandis que les espaces sont toujours cohérents.
mmmdreg
29
@mmmdreg exactement mon point. les espaces sont rigides et inutiles. L'utilisation d'onglets permet au spectateur de configurer son éditeur à sa guise. J'aime que mes onglets s'affichent sous forme de 2 espaces, mon collègue 4. Ce n'est pas possible sans l'utilisation d'onglets. Mon collègue ici, et moi, combattons les espaces lorsque nous formulons chacun dans notre éditeur respectif; les onglets ne sont pas un problème; c'est pourquoi ils ont été inventés (je suppose).
i3ensays
15
@ i3ensays amen, frère! J'essaie de faire comprendre ce concept aux gens depuis plus de 10 ans ( rizzoweb.com/java/tabs-vs-spaces.html ). Ce qui m'inquiète vraiment, c'est qu'en tant que programmeurs, vous penseriez que tout le monde comprendrait le concept d'abstractions (un onglet est une abstraction d'indentation de code, tandis qu'un nombre fixe d'espaces est une implémentation codée en dur) - mais hélas, il semble que de nombreux programmeurs ne peuvent pas voir l'abstraction ici.
E-Riz
28
@ i3ensays Votre équipe doit avoir une norme de codage qui indique clairement comment le code est formaté. Cela gagnerait du temps en empêchant les batailles que vous mentionnez. Vous devriez en adopter un dès que possible, mais cette norme indiquera à 100% que les onglets ne doivent jamais être utilisés parce que cette guerre sainte a été gagnée par les "gens de l'espace" il y a longtemps, donc une norme ne vous aidera pas. Outre les problèmes d'alignement, l'une des principales raisons pour lesquelles les espaces sont uniquement dus au fait que les outils de contrôle des révisions et les réviseurs de code n'auront pas à traiter ce problème. J'ai commencé de votre côté de cette bataille il y a 20 ans, mais j'ai finalement appris à embrasser l'espace.
Night Owl
12
La raison en est que les gens se retrouveront inévitablement avec des combinaisons de tabulations et d'espaces et dans certains éditeurs, le code ne s'affichera pas correctement. Si tout le monde utilise des espaces, ce n'est jamais un problème.
Eamonn McEvoy

Réponses:

1239

Éditeur Java

  1. Cliquez sur Fenêtre » Préférences
  2. Développer Java » Style de code
  3. Cliquez sur Formateur
  4. Cliquez sur le bouton Modifier
  5. Cliquez sur l' onglet Retrait
  6. Sous Paramètres généraux , définissez la stratégie de tabulation sur:Spaces only
  7. Cliquez sur OK ad nauseam pour appliquer les modifications.

[ Remarque : si nécessaire, enregistrez le profil sous un nouveau nom car le profil par défaut ne peut pas être remplacé.]

Éditeur de texte par défaut

Avant la version 3.6:

Window->Preferences->Editors->Text Editors->Insert spaces for tabs

Version 3.6 et ultérieure:

  1. Cliquez sur Fenêtre » Préférences
  2. Développer Général » Éditeurs
  3. Cliquez sur Editeurs de texte
  4. Cochez Insérer des espaces pour les tabulations
  5. Cliquez sur OK ad nauseam pour appliquer les modifications.

Notez que l'éditeur de texte par défaut est utilisé comme base pour de nombreux éditeurs non Java dans Eclipse. Il est étonnant que ce paramètre n'était pas disponible avant la 3.3.

C / C ++

  1. Cliquez sur Fenêtre » Préférences
  2. Développer C / C ++ » Style de code
  3. Cliquez sur Formateur
  4. Cliquez sur le bouton Nouveau pour créer un nouveau profil, puis sur OK pour continuer
  5. Cliquez sur l' onglet Retrait
  6. Sous Paramètres généraux , définissez la stratégie de tabulation sur:Spaces only
  7. Cliquez sur OK ad nauseam pour appliquer les modifications.

HTML

  1. Cliquez sur Fenêtre » Préférences
  2. Développer le Web » Fichiers HTML
  3. Cliquez sur Editeur
  4. Sous Formatage , sélectionnez le bouton radio Retrait à l'aide d'espaces
  5. Cliquez sur OK pour appliquer les modifications.

CSS

Suivez les mêmes instructions pour HTML, mais sélectionnez Fichiers CSS au lieu de Fichiers HTML .

JSP

Par défaut, les fichiers JSP suivent les préférences de formatage pour les fichiers HTML.

XML

L'espacement des fichiers XML est configuré dans les préférences.

  1. Cliquez sur Fenêtre » Préférences
  2. Développer XML » Fichiers XML
  3. Cliquez sur Editeur
  4. Sélectionnez Retrait à l'aide d'espaces
  5. Vous pouvez spécifier la taille de l' indentation si nécessaire: nombre d'espaces à indenter.
Dave Ray
la source
19
Pour ceux qui ont installé MyEclipse ou tout autre IDE construit sur Eclipse, vous pouvez avoir un autre éditeur remplaçant vos paramètres. Ce fut le cas pour MyEclipse et JavaScript. J'ai eu mon paramètre "Insérer des espaces pour les tabulations" activé dans les éditeurs de texte, mais les tabulations étaient toujours utilisées à la place des espaces. J'étais sur le point de l'appeler un jour et de l'écrire en tant que bogue, mais j'ai ensuite vu un deuxième éditeur pour les fichiers JavaScript (* .js) dans la liste "Editeurs associés".
John
5
Cela peut être un conseil utile, mais si vous rencontrez le même comportement, vérifiez si le fichier a d'autres éditeurs associés car ils peuvent remplacer vos paramètres. Pour ce faire, allez dans Fenêtre> Préférences> Général> Éditeurs> Associations de fichiers> puis recherchez l'extension de fichier qui gâche votre journée dans cette liste> cliquez dessus et regardez la liste des éditeurs associés ci
Jean
106
pour le fichier Java existant, appuyez sur Ctrl-A pour tout mettre en surbrillance, puis sur Ctrl-I pour appliquer les retraits actuels. Sinon, les onglets existants empêcheront les espaces dans les nouvelles lignes créées avec Entrée. Il remplace également les onglets existants par des espaces.
topchef
4
Pour C / C ++, il faut également changer C / C ++ -> "Code Style". C'est de loin le plus ennuyeux de ce logiciel par ailleurs génial.
dashesy
3
Pour être plus détaillé, pour C / C ++ et Ecplipse 3.6 ou version ultérieure, la deuxième étape était: Fenêtre> Préférences> C / C ++> Style de code> Formateur> Nouveau, puis choisissez un nom de profil, assurez-vous qu'il Open the edit dialog nowest activé, appuyez sur OK, puis sous l' Indentationonglet, vous verrez Tab Policy. Réglez-le sur Spaces Only.
Garrett
150

Pour l'éditeur de texte par défaut:

  • Général de rédacteurs de les éditeurs de texte » Insert spaces for tabs (vérifier)

Pour PHP:

  • PHP » Style de code » Formateur » Tab policy (choisissez" espaces ")
  • PHP » Style de code » Formateur » Indentation size (défini sur 4)

Pour CSS:

  • Web » CSS » Editeur » Indent using spaces (sélectionnez-le)
  • Web » CSS » Éditeur » Indentation size (réglé sur 4)

Pour HTML:

  • Web » HTML » Éditeur » Indent using spaces (sélectionnez-le)
  • Web » HTML » Éditeur » Indentation size (réglé sur 4)

Pour XML:

  • XML » Fichiers XML » Editeur » Indent using spaces (sélectionnez-le)
  • XML » Fichiers XML » Éditeur » Indentation size (défini sur 4)

Pour Javascript:

  • Javascript » Préférences » Style de code » Formateur » Modifier » Indentation (choisissez« espaces uniquement »)
  • Renommez le profil des paramètres du formateur pour l'enregistrer

Pour Java:

  • Java » Préférences » Style de code » Formateur » Éditer » Indentation (choisissez« espaces uniquement »)
  • Renommez le profil des paramètres du formateur pour l'enregistrer
Patrick Fisher
la source
Je ne vois aucune option Web ou Javascript à la racine des préférences (j'ai une perspective Web disponible, cependant) et je veux définir des onglets comme des espaces pour les fichiers html, css et javascript. Je suis sur Helios Eclipse pour les développeurs Java, une idée de comment obtenir cette option?
danny
Ces paramètres sont ce que je vois dans Eclipse PDT (PHP Development Tools). Eclipse PDT est construit sur Eclipse WTP (Web Tools Platform), qui comprend des outils de développement JavaScript (JSDT) et l'édition source de divers formats Web. C'est probablement ce qui vous manque.
Patrick Fisher
+1 pour le truc Java qui est absolument nécessaire car ses paramètres par défaut remplacent les paramètres généraux de l'éditeur de texte.
Giulio Piancastelli
pour C, Style de code -> Formateur -> Modifier -> Indentation -> Paramètres généraux -> Politique de tabulation
andrew cooke
1
Merci! Cela fonctionne bien sur Mars. Il est décevant que les options de l'éditeur de texte existent mais ne font rien!
paiego
37

De la modification des tabulations aux espaces dans Eclipse :

Fenêtre » Préférences » Java » Style de code » Formateur » Modifier » Indentation (choisissez «Espaces uniquement»)

Brian Deacon
la source
1
pour XML, xml -> fichiers xml -> éditeur, puis sélectionnez indentation à l'aide d'espaces, taille d'indentation 2.
Junchen Liu
26

Pour CDT :

  • Aller à la fenêtre / Préférence » C / C ++ » Style de code » Formateur » Nouveau
  • Créez-en un nouveau car le profil intégré ne peut pas être modifié
  • MyProfile (choisissez un nom pour le profil)
  • Indentation » Tab Policy (choisissez Espaces uniquement)
Antonio Leite
la source
23

Juste un petit conseil pour les gens tombant sur ce fil; il y a un autre endroit où ce paramètre peut également être défini, dans votre projet!

Eclipse prend en charge les paramètres spécifiques au projet et certains projets utiliseront leurs propres paramètres d'onglets / espaces non gérés, qui n'apparaîtront nulle part, à l'exception des propriétés du projet en cours.

Cela peut être géré par:

  • Cliquez avec le bouton droit sur le projet en cours dans l' Explorateur de packages
  • Propriétés » Style de code Java
  • Mettez hors toutes les options spécifiques du projet

Ce ne sera généralement un problème que si vous importez le code de quelqu'un d'autre dans votre Eclipse.

Nick Chadwick
la source
19

Pour l'éditeur par défaut:

Fenêtre » Préférences » Éditeurs » Éditeurs de texte »Insert spaces for tabs

entrez la description de l'image ici

Pour l'éditeur Java

Fenêtre » Préférences » Java » Style de code » Formateur » Édition » Indentation » Tab policy « Espaces uniquement »

entrez la description de l'image ici

Sumit Singh
la source
9

Lorsque j'ai été confronté à ce problème, j'avais "utiliser des espaces pour les onglets" défini sur true partout où je pouvais trouver, et pourtant j'obtenais toujours des onglets. Cela a fini par être dû au fait que les onglets étaient utilisés ailleurs dans le fichier et qu'il essayait de faire une indentation intelligente ou quelque chose de frustrant.

Il a été résolu en sélectionnant le contenu du fichier et en appuyant, sur un Mac, command+shift+f. Cela applique la mise en forme donnée à un fichier. Je ne connais pas la même liaison de touches sur Windows, mais essayez. À ce stade, je commence à obtenir le comportement attendu.

user1978019
la source
Pour une solution plus modulaire à ce problème, l'utilisateur peut également effectuer une recherche / remplacement pour \t(assurez-vous que les expressions régulières sont activées) et remplacer par la quantité souhaitée de caractères d'espace
jlewkovich
La clé pour formater le fichier sous Windows est assez similaire - Ctrl+Shift+F.
A.Alessio
5

IDE Eclipse pour les développeurs C / C ++, version: Helios Service Release 2

Vous devez créer un nouveau profil en appuyant sur le bouton Nouveau dans "Fenêtre-> Préférences-> Style de code"

Accédez à l'onglet Indentation et sélectionnez "Tab policy = Space only"


IDE Eclipse pour les développeurs C / C ++, version: Kepler Service Release 1

Suivez le chemin ci-dessous pour créer un nouveau profil: "Fenêtre> Préférences> C / C ++> Style de code> Formateur"

Accédez à l'onglet Indentation et sélectionnez "Tab policy = Space only"

Khokhar
la source
5

Assurez-vous de vérifier le formateur java car il écrase le paramètre "insérer des espaces pour les tabulations" . Aller à:

Java->Code Style"->Formatter->Edit->Identation

Remarque: vous devrez créer un format personnalisé pour pouvoir enregistrer votre configuration.

ricardo rivaldo
la source
5

J'ai trouvé la solution à ce problème très simple et qui fonctionne toujours. C'est changer le fichier de réglage de l'éclipse.

Par exemple (modifier la taille d'indentation HTML):


  1. org.eclipse.wst.html.core.prefsFichier trouvé qui devrait être dansyour_workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/
  2. Ajouter / modifier la ligne dans le fichier:
indentationChar=space

indentationSize=4
Michał Orliński
la source
1
Sur Ubuntu 14.04.03 LTS et eclipse 4.5 je ne peux pas changer la taille d'identification est toujours verrouillée et non modifiable. Cela a résolu mon problème.
TekTimmy
5

Allez dans Fenêtre -> Préférences et tapez l' onglet comme texte de recherche (qui affichera une boîte de dialogue comme ci-dessous):

entrez la description de l'image ici

Accédez aux sections en surbrillance pour modifier la stratégie de l'onglet. Pour les paramètres de l' éditeur , il s'agit principalement du retrait à l'aide d'espaces (également illustré ci-dessus).

Pour les paramètres du formateur , vous devez modifier le profil actif et mettre à jour la politique de l'onglet (disponible sous ` Retrait -> Paramètres généraux :

entrez la description de l'image ici

Saikat
la source
3

Fenêtre-> Préférences-> Java-> Style de code-> Formateur-> Édition-> Indentation = "Espaces uniquement"

Santosh
la source
3

Dans Eclipse, accédez à Fenêtre » Préférences, puis recherchez Formateur .

Vous verrez divers liens en gras, cliquez sur chaque lien en gras et définissez-le à la use spacesplace de tabs.

Dans le lien du formateur java, vous devez modifier le profil et sélectionner la stratégie d'onglet, spaces onlydans l'onglet d'indentation

Sandeep
la source
2

Ne manquez pas la politique de tabulation pour les deux * Espaces uniquement * Utilisez des espaces pour mettre en retrait les lignes enveloppées

Je n'ai vérifié que cette dernière chose et laissé la combobox sous forme d'onglets uniquement, ce qui a échoué à CheckStyle .. Pour info, je parle de Préférences> Java> Formateur> Modifier ...

Chester
la source
2

Au format eclipse xml:

Pour l'onglet:

<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="tab"/>

Pour l'espace:

<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="space"/>
dillip pattnaik
la source
0
  • Cliquez sur Fenêtre »Préférences
  • Développer Java »Style de code
  • Cliquez sur Formateur
  • cliquez sur nouveau
  • Sélectionnez le nom du profil
  • Cliquez sur OK
  • Cliquez sur le bouton Modifier
  • Cliquez sur l'onglet Retrait
  • Sous Paramètres généraux, définissez la stratégie de tabulation sur: Espaces uniquement
  • Cliquez sur OK.
Sam
la source
0

Pensez également à utiliser un fichier .editorconfig: https://marketplace.eclipse.org/content/editorconfig-eclipse . Quelqu'un qui n'utilise pas Eclipse peut également en bénéficier, dans le pire des cas, il peut servir de guide. NOTE: Je n'entrerai pas dans les onglets vs guerres spatiales mais utiliserai les espaces FTW :-)

Christophe Roussy
la source
0

En complément aux autres réponses, sous Mac OS X, le menu "Préférences" se trouve sous Eclipse, pas Windows (contrairement aux distributions Eclipse Windows / Linux). Tout le reste est toujours le même que souligné par d'autres réponses après ce point.

IE: Java Formatter disponible sous:

Eclipse >      | # Not Window!
Preferences >  |
Java >         |
Code Style >   |
Formatter      |

De là, modifiez le formateur et la politique d'onglet peut être définie sous "Retrait".

Ironcache
la source
0

Dans eclipse mars (EE) sur Mac OS X, la seule façon de trouver cela dans les préférences était d'ouvrir la boîte de dialogue Préférences et de taper Formatter, puis de sélectionner Java-> Style de code-> Formatter.

Java-> Code Style n'a pas accès à Formatter!

paiego
la source
0

Et n'oubliez pas l' éditeur ANT

Pour une raison quelconque, Ant Editor n'apparaît pas dans les résultats de recherche pour 'tab'ou'spaces' peut être manqué.

Sous Windows > Préférences

  • Fourmi » Éditeur » Formateur » Tab size: (réglé sur 4)
  • Ant » Editeur » Formateur » Use tab character instead of spaces (décochez-le)
utilisateur shonky linux
la source
0

Vous pouvez certainement utiliser un fichier XML pour configurer votre formateur du style de codage. Le fichier de formatage vous aide à avoir le même style de codage et les mêmes directives pour tous les membres de votre équipe.

L'ajout de ces variables de configuration ci-dessous aurait a tab= 2 spaceset se convertirait dans l'espace même si vous utilisez probablement une Tabtouche raccourcie lors du codage à l'aide d' Eclipse .

<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="2"/>
<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="space"/>    
<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="yes"/>

Meilleur,

Quoc Truong
la source