Sublime texte 3, Convertir les espaces en onglets
je sais qu'il y a beaucoup de billets à ce sujet, mais je n'ai pas pu le faire fonctionner.
J'utilise des onglets pour le codage. Y a-t-il un moyen de convertir toujours les espaces en onglets? I. e. sur ouvrir et Enregistrer des fichiers? Quelqu'un a une idée?
/ / edit:
Mon désir est de faire ce automatiquement ! -> ouvrir, enregistrer ou à la volée
Quelqu'un sait-il comment faire?
j'ai essayé ce :
import sublime, sublime_plugin, os
class ExpandTabsOnSave(sublime_plugin.EventListener):
# Run ST's 'expand_tabs' command when saving a file
def on_pre_save(self, view):
if view.settings().get('expand_tabs_on_save') == 1:
view.window().run_command('expand_tabs')
et voici mes paramètres d'utilisateur:
{
"auto_complete_selector": "source - comment, meta.tag - punctuation.definition.tag.begin",
"auto_indent": true,
"detect_indentation": true,
"draw_white_space": "all",
"ensure_newline_at_eof_on_save": true,
"expand_tabs_on_save": true,
"font_face": "SourceCodePro-Regular",
"font_size": 10,
"format_on_save": true,
"ignored_packages":
[
"Vintage"
],
"indent_to_bracket": true,
"open_files_in_new_window": false,
"smart_indent": true,
"tab_size": 4,
"translate_tabs_to_spaces": false,
"trim_automatic_white_space": true,
"trim_trailing_white_space_on_save": true,
"use_tab_stops": false,
"word_wrap": false
}
6 réponses
dans le coin inférieur droit de votre fenêtre de texte Sublime, vous verrez un indicateur d'indentation qui ressemble beaucoup à ceci:
en cliquant dessus, vous ouvrez un menu avec des options pour ajuster vos préférences d'indentation, et plus important encore, pour convertir les espaces en onglets et vice versa.
le même menu figure sous View -> Indentation
.
au bas de la fenêtre Sublime, vous verrez quelque chose représentant votre tab/espace.
vous aurez alors un dropdown avec un tas d'options. Les options dont vous vous souciez sont:
- conversion Indentation en espaces
- conversion Indentation en onglets
appliquez le paramètre désiré à l'ensemble du document.
Espérons que cette aide.
comme vous le savez peut-être déjà, vous pouvez personnaliser vos paramètres d'identification dans Preferences.sublime-settings
, par exemple:
"detect_indentation": true,
"tab_size": 4,
"translate_tabs_to_spaces": false
cela définira votre éditeur à utiliser des onglets qui sont de 4 espaces de large et outrepassera le comportement par défaut qui provoque Sublime pour correspondre à l'indention de n'importe quel fichier que vous éditez. Avec ces paramètres, ré-indenter le fichier provoquera le remplacement des espaces par des onglets.
dans la mesure où automatiquement re-indenting lorsque ouvrir un fichier, ce n'est pas tout à fait aussi facile (mais ce n'est probablement pas une bonne idée puisque whitespace change wreak havoc on file diffs). Ce qui pourrait être un meilleur plan d'action: vous pouvez carte un raccourci pour ré-insertion et déclencher juste que lorsque vous ouvrez un nouveau fichier qui doit être réparé.
Voici une solution qui se convertira automatiquement en onglets chaque fois que vous ouvrez un fichier.
créer ce fichier: .../Packages/User/on_file_load.py
:
import sublime
import sublime_plugin
class OnFileLoadEventListener(sublime_plugin.EventListener):
def on_load_async(self, view):
view.run_command("unexpand_tabs")
NOTE. Il permet au fichier d'être dans un état non sauvegardé après l'avoir ouvert, même si aucune conversion espace-à-tab n'a eu lieu... peut-être que certains peuvent aider avec une solution pour que...
Dans mon cas, cette ligne a résolu mon problème:
"translate_tabs_to_spaces": false
, Voici comment le faire automatiquement sur enregistrer: https://coderwall.com/p/zvyg7a/convert-tabs-to-spaces-on-file-save
malheureusement, le paquet ne fonctionne pas lorsque vous l'installez à partir du Gestionnaire de paquets.