Exemple: Si j'ai un document avec une indentation de 2 espaces et que je veux qu'il en ait 4, comment puis-je le convertir automatiquement à l'aide de l'éditeur de texte Sublime?
Voici une astuce de Sublime Text 2 ou 3 pour convertir l'espacement d'indentation dans un document.
TL; DR:
Conversion de 2 espaces en 4 espaces:
Assurez-vous que la largeur de tabulation est définie sur 2. Convertissez votre indentation de 2 espaces en tabulations, passez à la largeur de tabulation 4, puis convertissez-la en espaces.
La description détaillée:
Aller à:
View -> Indentation
Il devrait lire:
Indent using spaces [x]
Tab width: 2
Sélectionner:
Convert Indentation to Tabs
Puis sélectionnez:
Tab width: 4
Convert Indentation to Spaces
Terminé.
En fait, j’ai trouvé qu’il était préférable, pour ma santé mentale, de définir les préférences de l’utilisateur de la manière suivante:
"translate_tabs_to_spaces": true,
"tab_size": 2,
"indent_to_bracket": true,
"detect_indentation": false
Le detect_indentation: false
est particulièrement important, car il oblige Sublime à respecter ces paramètres dans chaque fichier, contrairement aux paramètres View -> Indentation
.
Si vous souhaitez en profiter, vous pouvez également définir un raccourci clavier pour réindenter automatiquement votre code (YMMV) en collant les éléments suivants dans Sublime -> Preferences -> Key Binding - User
:
[
{ "keys": ["ctrl+i"], "command": "reindent" }
]
et pour visualiser les espaces:
"indent_guide_options": ["draw_active"],
"trim_trailing_white_space_on_save": true,
"ensure_newline_at_eof_on_save": true,
"draw_white_space": "all",
"rulers": [120],
J'ai trouvé, dans mon esprit, une solution plus simple que Magne:
Sur mac:
"cmd+f" => " "(two spaces) => "alt+enter" => "arrow right" => " "(two more spaces) => set tab width to 4(this can be done before or after.
Sous Windows ou d’autres plates-formes, changez cmd+f
et alt+enter
avec vos touches de raccourci find
et select all
.
Remarque: cette méthode est sujette aux "erreurs" si vous avez plus d'un espace dans votre code. C'est donc moins sûr que la méthode de Magne, mais c'est plus rapide (du moins pour moi).
Alors que beaucoup de suggestions fonctionnent lors de la conversion de 2 -> 4 espaces. J'ai rencontré des problèmes lors de la conversion 4 -> 2.
Voici ce que j'ai fini par utiliser:
Sublime Text 3/Packages/User/to-2.sublime-macro
[
{ "args": null, "command": "select_all" },
{ "args": { "set_translate_tabs": true }, "command": "unexpand_tabs" },
{ "args": { "setting": "tab_size", "value": 1 }, "command": "set_setting" },
{ "args": { "set_translate_tabs": true }, "command": "expand_tabs" },
{ "args": { "setting": "tab_size", "value": 2 }, "command": "set_setting" }
]
Si vous trouvez que la recherche et le remplacement sont plus rapides à utiliser, vous pouvez utiliser un remplacement de regex comme ceci:
Find (regex): (^|\G) {2}
(Au lieu de "{2}" <space>{2}
, vous pouvez simplement écrire deux espaces. Utilisez-le ici pour plus de clarté.)
Remplacez-le par 4 espaces, ou ce que vous voulez, comme \t
.
J'ai écrit un plugin pour cela. Vous pouvez le trouver ici ou chercher "ReIndent" dans le contrôle du paquet. Il fait essentiellement la même chose que Kyle Finley a écrit, mais de manière pratique avec des raccourcis pour convertir entre 2 et 4 et inversement.
Vous devez ajouter ce code à vos raccourcis clavier personnalisés:
{ "keys": ["ctrl+f12"], "command": "set_setting", "args": {"setting": "tab_size", "value": 4} }
en appuyant sur ctrl + f12, votre fichier sera réindiqué à une taille de tabulation de 4. Si vous souhaitez une taille de tabulation différente, il vous suffit de modifier le nombre "valeur". Le format est un simple json.
Récemment, j'ai rencontré un problème similaire. J'utilisais l'éditeur sublime ..__ Ce n'est pas un problème avec le code mais avec l'éditeur.
Les modifications ci-dessous des paramètres de préférence ont fonctionné pour moi.
Menu Texte sublime -> Préférences -> Paramètres: Spécifique à la syntaxe :
{
"tab_size": 4,
"translate_tabs_to_spaces": true
}