Je sais qu'il y a beaucoup de messages à ce sujet, mais je ne pouvais pas le faire fonctionner.
J'utilise des onglets pour le codage. Existe-t-il un moyen de toujours convertir les espaces en tabulations? C'est à dire. sur ouvrir et sur Enregistrer des fichiers? Quelqu'un a une idée?
// modifier:
Mon désir est de le faire automatiquement! -> ouvrir, sauvegarder ou à la volée
Est-ce que quelqu'un sait comment faire?
J'ai essayé ceci :
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 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
}
Dans le coin inférieur droit de la fenêtre Sublime Text, 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 des espaces en onglets et inversement.
Le même menu est répertorié sous View -> Indentation
.
Au bas de la fenêtre Sublime, vous verrez quelque chose représentant votre paramètre de tabulation/espace.
Vous obtiendrez alors un menu déroulant avec un tas d'options. Les options qui vous intéressent sont:
Appliquez le paramètre souhaité à l'ensemble du document.
J'espère que cela t'aides.
Comme vous le savez peut-être déjà, vous pouvez personnaliser vos paramètres de retrait dans Preferences.sublime-settings
, par exemple:
"detect_indentation": true,
"tab_size": 4,
"translate_tabs_to_spaces": false
Cela définira votre éditeur pour qu'il utilise des onglets larges de 4 espaces et remplacera le comportement par défaut qui oblige Sublime à correspondre à l'indentation du fichier que vous modifiez. Avec ces paramètres, la ré-indentation du fichier entraînera le remplacement des espaces par des tabulations.
S'agissant de la réindentation automatique lors de l'ouverture d'un fichier, ce n'est pas aussi simple (mais ce n'est probablement pas une bonne idée, car les changements d'espaces font des ravages dans les différences de fichiers). Ce qui pourrait être un meilleur plan d’action: vous pouvez mapper un raccourci pour ré-indentation et ne le déclencher que lorsque vous ouvrez un nouveau fichier qui doit être corrigé.
Dans mon cas, cette ligne a résolu mon problème:
"translate_tabs_to_spaces": false
Vous pouvez utiliser la palette de commandes pour résoudre ce problème.
Étape 1: Ctrl + Shift + P
(pour activer la palette de commandes)
Étape 2: Tapez "Indentation", choisissez "Indentation: Convert to Tabs"
Voici une solution qui convertira automatiquement en onglets chaque fois que vous ouvrez un fichier.
Créez 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")
REMARQUE. Cela signifie que le fichier se trouve dans un état non sauvegardé après l'avoir ouvert, même si aucune conversion d'espace-onglet n'a eu lieu ... Peut-être que certains peuvent aider à résoudre ce problème ...
Pour convertir automatiquement les espaces en onglets à la sauvegarde , ajoutez le script Python suivant à un nouveau sous-dossier appelé "UnexpandTabsOnSave" dans "$ SUBLIME_HOME $\Packages \":
import sublime, sublime_plugin, os
class ConvertSpacesToTabsOnSave( sublime_plugin.EventListener ):
# Run Sublime's 'unexpand_tabs' command when saving any file
def on_pre_save( self, view ):
view.window().run_command( 'unexpand_tabs' )
Merci pour la ressource initiale.