Comment remplacer quatre espaces par une tabulation dans Sublime Text 2?

310

entrez la description de l'image ici

Je veux remplacer tous les "quatre espaces" qui sont écrits par un autre éditeur de texte avec des tabulations. Comment puis-je le faire?

Mohsen
la source

Réponses:

639

Dans le coin inférieur droit de la barre d'état, cliquez sur Spaces: N(ou Tab Width: N, où N est un nombre entier), assurez-vous qu'il indique Tab Width: 4pour la conversion à partir de quatre espaces, puis sélectionnez Convert Indentation to Tabsdans le menu contextuel qui apparaîtra lors du clic initial.

De même, si vous souhaitez faire le contraire, cliquez sur le texte Spacesou Tab Widthdans la barre d'état et sélectionnez dans le même menu.

entrez la description de l'image icientrez la description de l'image ici

ncremins
la source
3
Bien que toutes les réponses soient correctes, celle-ci est la plus simple! Merci
Mohsen
1
Je dois l'admettre; c'est :) Jamais utilisé les menus contextuels de la barre d'état, je suppose que j'ai toujours pensé que c'était des indicateurs statiques.
Ekin Koc
2
Ils ne sont pas aussi remarquables qu'ils le devraient peut-être, j'ai quelques bugs que je dois signaler pour les sublimes bouchons de non-présentation. Excellent éditeur.
ncremins
Vous pouvez également utiliser les paramètres d'un fichier de projet sublime si vous souhaitez que l'éditeur mémorise ce paramètre pour tous les fichiers d'un projet
Michael
1
@phreakhead Je ne sais pas si je comprends parfaitement votre besoin (pensez à ouvrir une nouvelle question?), mais si translate_tabs_to_spaces a la valeur false, alors lorsque vous tapez (nouveau texte) et que vous appuyez sur tab, ce sera un caractère de tabulation . si vous avez un fichier qui a déjà des indentations en tant que 4 espaces (au lieu d'onglets), vous pouvez utiliser l'option en bas du menu dans la capture d'écran pour convertir l'indentation en onglets.
Michael
106

Sélectionnez tout, puis:

Windows / Linux:

Ctrl+ Shift+p

puis tapez "indent"


Mac:

Shift+ Command+p

puis tapez "indent"

Web_Designer
la source
C'est le plus rapide tout en gardant les mains sur le clavier. +1
eduncan911
Incroyable ... cela vous donne la possibilité de "Reindent Lines" à partir de fichiers comme Bootstrap qui vient avec une indentation de 2 lignes
Shina
Je pense que cela ne fait pas exactement ce qu'il demande. Cela permet également de réindenter les lignes afin de modifier réellement l'indentation, et il ne pose que des questions sur la conversion des espaces en tabulations. Quoi qu'il en soit, c'est une bonne réponse, mais dans certains cas, cela peut gâcher votre indentation (pensez aux modèles en retrait de lame par exemple).
Sergi Ramón,
C'est mieux car cela fonctionne très bien avec le code copié.
SaurabhM
45

Pour configurer Sublime pour toujours utiliser des onglets, essayez d'ajouter ce qui suit à preferences-> settings-user:

{
    "tab_size": 4,
    "translate_tabs_to_spaces": false
}

Plus d'informations ici: http://www.sublimetext.com/docs/2/indentation.html

Simon
la source
5
C'est la bonne réponse, car même après avoir sélectionné "Retrait en utilisant des espaces", cette option se réinitialise au redémarrage.
mvd
1
OP a demandé l'inverse. Étrangement, il n'y a pas d'option. Tab haine.
phreakhead
26

Au menu principal;

View -> Indentation -> Convert Indentation to Tabs / Spaces

Ekin Koc
la source
9

Faire une regex "Rechercher" pour \t (barre oblique inversée, un onglet) et remplacez-la par quatre espaces.

Soit le menu principal, soit le menu d'espacement des barres d'état en bas à droite fait la même chose, avec moins de travail.

Dave Newton
la source
3
C'est l'inverse de ce que l'affiche a demandé
Max Nanasy
3
@MaxNanasy Il en est ainsi. Je suppose que mon aversion pour les caractères de tabulation est si profonde qu'elle est subconsciente.
Dave Newton
2
Cette réponse n'a aucun rapport avec la question posée. Veuillez envisager de la remplacer par la bonne réponse ou de supprimer votre réponse.
Randy the Dev
2
@AndrewDunn "complètement"? Vraiment? Comment l'inverse de quelque chose pourrait-il être "complètement" sans rapport? Par définition, c'est lié, et le correctif est évident. Si seulement nous avions la possibilité de modifier les réponses.
Dave Newton
6

créer une liaison de touches pour le moyen le plus rapide

{ "keys": ["super+alt+t"], "command": "unexpand_tabs", "args": { "set_translate_tabs": true } }

ajoutez ceci à Préférences> Raccourcis clavier (utilisateur) lorsque vous appuyez sur super+ alt+ tcela convertira les espaces en tabulations

Ibrahim Benzer
la source
2

Vous pouvez ajouter une liaison de clé facile:

Préférence> Raccourci clavier - utilisateur:

[
    { "keys": ["super+l"], "command": "reindent"},
]

Maintenant, sélectionnez la ligne ou le fichier et appuyez sur: commande + l

star18bit
la source
0

Si vous souhaitez appliquer récursivement cette modification à tous les fichiers d'un répertoire, vous pouvez utiliser le modal Rechercher> Rechercher dans les fichiers ...:

Rechercher dans les fichiers modaux

Modifier Je ne l'ai pas mis en évidence dans l'image, mais vous devez cliquer sur le bouton. * À gauche pour que Sublime interprète le champ Rechercher comme une expression régulière / Modifier

Edit 2 J'ai négligé d'ajouter un début d'ancrage de chaîne au regex. Je corrige cela ci-dessous et mettrai à jour l'image lorsque j'en aurai l'occasion / Modifier

L'expression régulière dans le champ Rechercher ^[^\S\t\n\r]{4}correspondra aux caractères d'espaces blancs par groupes de 4 (à l'exclusion des tabulations et des caractères de nouvelle ligne). Le champ de remplacement \tindique que vous souhaitez les remplacer par des onglets.

Si vous cliquez sur le bouton à droite du champ Où, vous verrez des options qui vous aideront à cibler votre recherche, à remplacer. Add FolderL'option vous permettra de sélectionner le dossier à partir duquel vous souhaitez effectuer une recherche récursive. L' Add Include Filteroption vous permettra de restreindre la recherche aux fichiers d'une certaine extension.

BobbyA
la source