Je sais que Sublime Text 2 peut supprimer l’espace blanc de fin sur les fichiers lors de la sauvegarde.
Lorsque vous travaillez en équipe et que vous apportez une modification à un fichier, cela a tendance à produire d'énormes différences qui rendent la révision de code par les pairs plus lourde. Pour cette raison, je préfère ne nettoyer que les espaces lorsque je commets de toute façon de gros changements sur un fichier et laisser les espaces tels quels pour les changements mineurs.
Je voudrais savoir s'il existe une commande pour exécuter le rognage de l'espace blanc à la demande sur un fichier, autre que "Activate trimming on save > Save file > Deactivate trimming"
.
Les recherches dans la documentation et sur stackoverflow ne montrent rien de pertinent, tous les liens semblent parler de la réduction automatique lors de la sauvegarde.
J'utilise le plugin TrailingSpaces pour cela.
Mettez en surbrillance les espaces de fin et supprimez-les en un éclair.
ST2 fournit un moyen de supprimer automatiquement les espaces de fin lors de la sauvegarde du fichier. Selon vos paramètres, il peut être plus pratique de simplement les surligner et/ou de les supprimer à la main. Ce plugin fournit justement ça!
Utilisation: cliquez sur "Éditer/espaces de fin/Supprimer".
Pour ajouter une liaison de clé, ouvrez "Préférences/Liaisons de clés - Utilisateur" et ajoutez:
{ "keys": ["ctrl+alt+t"], "command": "delete_trailing_spaces" }
J'utilise ces étapes pour une solution rapide à la demande dans Sublime Text:
[ \t]+\n
\n
Vous pouvez également le faire pour un grand ensemble de fichiers via
[ \t]+\n
\n
Vous pouvez simplement utiliser une expression régulière pour supprimer les espaces finaux:
[^\S\r\n]+$
[^\S\r\n]+$
est une expression rationnelle pour "au moins un caractère d'espacement (donc des espaces et des tabulations mais pas des nouvelles lignes, en utilisant une double négation) suivi de la fin de la ligne "
Voici un moyen très simple qui n'utilise aucun plugin ou paramètre et fonctionne dans la plupart des situations.
Les espaces et les onglets à la fin des lignes doivent maintenant être sélectionnés. Appuyez sur Supprimer ou sur Retour arrière
Remarque - Les caractères spéciaux tels que (et + peuvent également être sélectionnés à la fin de la ligne à ce stade, pas uniquement des espaces.
Comment sélectionner plusieurs fois toutes les lignes:
Une solution consiste à utiliser la touche centrale de la souris pour sélectionner verticalement, puis à appuyer sur la touche de fin s'il s'agit d'une petite sélection.
Avec les raccourcis:
Vous pouvez également utiliser la fonction de recherche pour trouver quelque chose qui sera dans chaque ligne, comme le caractère d'espace:
Exemple de texte:
text and number 44 more text and a space
text and number 44 more text and 2 tabs
text and number 44 more text and no space or tab
text and number 44 more text after a line feed
J'ai trouvé une soulution ici: http://www.sublimetext.com/forum/viewtopic.php?f=4&t=4958
Vous pouvez modifier le package
trim_trailing_white_space.py
situé dans le répertoire packages par défaut, de cette façon:
import sublime, sublime_plugin
def trim_trailing_white_space(view):
trailing_white_space = view.find_all("[\t ]+$")
trailing_white_space.reverse()
edit = view.begin_edit()
for r in trailing_white_space:
view.erase(edit, r)
view.end_edit(edit)
class TrimTrailingWhiteSpaceCommand(sublime_plugin.TextCommand):
def run(self, edit):
trim_trailing_white_space(self.view)
class TrimTrailingWhiteSpace(sublime_plugin.EventListener):
def on_pre_save(self, view):
if view.settings().get("trim_trailing_white_space_on_save") == True:
trim_trailing_white_space(view)
class EnsureNewlineAtEof(sublime_plugin.EventListener):
def on_pre_save(self, view):
if view.settings().get("ensure_newline_at_eof_on_save") == True:
if view.size() > 0 and view.substr(view.size() - 1) != '\n':
edit = view.begin_edit()
view.insert(edit, view.size(), "\n")
view.end_edit(edit)
Maintenant, vous pouvez ajouter la commande à la configuration de votre keymap:
{ "keys": ["your_shortcut"], "command": "trim_trailing_white_space" }