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
}
128
demandé sur chris 2014-03-20 13:57:39

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:

Indentation options menu

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 .

247
répondu angerson 2014-03-20 13:58:03

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.

97
répondu erier 2014-11-03 22:27:28

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é.

58
répondu justin 2017-05-23 10:31:17

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...

2
répondu TheStoryCoder 2018-02-05 09:57:38

Dans mon cas, cette ligne a résolu mon problème:

"translate_tabs_to_spaces": false
2
répondu vljs 2018-03-26 17:08:57

, 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.

-1
répondu Soheil 2017-02-03 17:25:55