Je sais qu'il y a beaucoup de messages à ce sujet, mais je n'ai pas pu le faire fonctionner.
J'utilise des onglets pour le codage. Existe-t-il un moyen de convertir toujours les espaces en tabulations? Ie sur les fichiers ouverts et sur Enregistrer? Quelqu'un a une idée?
// edit:
Mon désir est de le faire automatiquement ! -> ouvrir, sauvegarder ou à la volée
Quelqu'un sait-il 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
}
Ctrl + ~
et voir si cela vous donne des erreurs de plugin? Et si Package Control est installé, pouvez-vous voir s'ilExpandTabsOnSave
est répertorié comme un plugin installé?print("debug")
ou similaire au plugin pour voir s'il est en cours d'exécution ou non lors de l'enregistrement.Réponses:
Dans le coin inférieur droit de votre fenêtre Sublime Text, vous verrez un indicateur d'indentation qui ressemble beaucoup à ceci:
En cliquant dessus , ouvre un menu avec des options pour régler vos préférences d'indentation, et plus important encore ,
Convert Indentation to Tabs/Spaces
.Le même menu est répertorié sous
View -> Indentation
.la source
Au bas de la fenêtre Sublime, vous verrez quelque chose représentant votre paramètre d'onglet / espace.
Vous obtiendrez alors une liste déroulante 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.
la source
Comme vous le savez peut-être déjà, vous pouvez personnaliser vos paramètres d'indentation dans
Preferences.sublime-settings
, par exemple:Cela configurera votre éditeur pour utiliser des onglets de 4 espaces de large et remplacera le comportement par défaut qui oblige Sublime à faire correspondre l'indentation du fichier que vous éditez. Avec ces paramètres, la ré-indentation du fichier entraînera le remplacement des espaces par des tabulations.
En ce qui concerne la ré-indentation automatique lors de l'ouverture d'un fichier, ce n'est pas aussi facile (mais ce n'est probablement pas une bonne idée car les changements d'espaces font des ravages sur les fichiers diffs). Quel pourrait être le meilleur plan d'action: vous pouvez mapper un raccourci pour la ré-indention et le déclencher simplement lorsque vous ouvrez un nouveau fichier qui doit être corrigé.
la source
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"
la source
Dans mon cas, cette ligne a résolu le problème:
la source
Voici une solution qui se convertira automatiquement en onglets chaque fois que vous ouvrez un fichier.
Créez ce fichier
.../Packages/User/on_file_load.py
::REMARQUE. Cela entraîne le fichier dans un état non enregistré après son ouverture, même si aucune conversion d'espace en onglet n'a eu lieu ... peut-être que certains peuvent vous aider avec un correctif pour cela ...
la source
.../Packages/User/on_file_load.py
, non.php
on_load
au lieu deon_load_async
.Pour convertir automatiquement les espaces en onglets lors de l'enregistrement , ajoutez le script Python suivant à un sous-dossier nouvellement créé appelé "UnexpandTabsOnSave" dans "$ SUBLIME_HOME $ \ Packages \":
Merci pour la ressource initiale.
la source
Vous pouvez remplacer les onglets par des espaces dans tous les fichiers de projet en:
Ctrl+Shif+F
^\A(.*)$
Your dir
Remplacer par
\1
Cela entraînera l'ouverture de tous les fichiers de projet, avec leur tampon marqué comme sale. Avec cela, vous pouvez maintenant éventuellement activer ces prochains paramètres Sublime Text, pour couper tous les fichiers à la fin des espaces blancs et assurer une nouvelle ligne à la fin de chaque fichier.
Vous pouvez activer ces paramètres en allant dans le menu
Preferences -> Settings
et en ajoutant ces contenus à votre fichier de paramètres:"ensure_newline_at_eof_on_save": true,
"trim_trailing_white_space_on_save": true,
View -> Show Console (Ctrl+`)
et exécutez la commande:import threading; threading.Thread( args=(set(),), target=lambda counterset: [ (view.run_command( "expand_tabs", {"set_translate_tabs": True} ), print( "Processing {:>5} view of {:>5}, view id {} {}".format( len( counterset ) + 1, len( window.views() ), view.id(), ( "Finished converting!" if len( counterset ) > len( window.views() ) - 2 else "" ) ) ), counterset.add( len( counterset ) ) ) for view in window.views() ] ).start()
File -> Save All
la source
si vous avez un Mac, utilisez simplement l'option d'aide (généralement la dernière option de la barre de menu de Mac) puis tapez: "tab indentation" et choisissez une largeur d'indentation de tabulation
mais généralement, vous pouvez suivre ce chemin: vue -> indentation
la source
Utilisez la commande suivante pour le résoudre:
la source
Voici comment le faire automatiquement lors de l'enregistrement: https://coderwall.com/p/zvyg7a/convert-tabs-to-spaces-on-file-save
Malheureusement, le package ne fonctionne pas lorsque vous l'installez à partir du gestionnaire de packages.
la source