Comment est-ce que je coupe automatiquement les espaces blancs de fin avec Notepad ++?

70

Je ne veux pas supprimer les lignes vides complètement, mais je veux supprimer les onglets de fin et les espaces. Eclipse le fait généralement (via un paramètre de préférence) lorsque nous sauvegardons le fichier.

Par exemple, le fichier avant la sauvegarde ($ = fin de ligne):

def shuffle(list):$
    import random $
    $
    random.shuffle(list)
    $
$

... et quand j'enregistre cela dans l'éditeur, Eclipse fait ce qui suit:

def shuffle(list):$
    import random$
$
    random.shuffle(list)
$
$

Comment puis-je couper automatiquement les espaces de fin avec Notepad ++?

Srikanth
la source
Pour réduire les espaces de plusieurs fichiers à la fois, effectuez une recherche et un remplacement pour l'expression régulière [ \t]+$. ( Capture d'écran ) ( Source )
Stevoisiak

Réponses:

74

Vous devriez pouvoir faire une expression régulière trouver / remplacer dans Notepad ++ en utilisant un modèle comme \s+$.

Quelques options sont également disponibles dans le menu Edition -> Opérations vierges qui répondent à vos besoins.

Dans le menu "Macro", il y a une option "Trim trailing and save". Si vous devez créer une expression régulière, il est possible de créer une macro, mais je ne l’ai jamais essayée.

johanno
la source
9
oui dans ma version de Notepad ++, il y en a un Edit -> Trim Trailing Space, mais puis-je le déclencher automatiquement pour chaque sauvegarde?
Srikanth
5
Il y a une option pour "Couper et sauvegarder" dans le menu Macro
johanno
22
J'ai lié la touche Ctrl + S à l' Macro -> Trim Trailing and saveoption, en utilisant l' Settings -> Shortcut Mapper...option. C’est bien mieux que d’avoir à se rappeler d’exécuter la macro tout le temps. :)
Casey Kuball
La recherche \s+$correspond à n'importe quelle ligne vide, quels que soient les espaces. Je recommande d'utiliser à la [ \t]+$place. (Voir Comment puis-je supprimer les espaces en fin de texte à l'aide d'une expression régulière? )
Stevoisiak
63

Alt+ Shift+ Sfait ce que tu veux. En fait, il enregistre également le fichier.

Mise à jour

Comme indiqué par 10basetom, vous pouvez attribuer un raccourci différent à cette macro. Vous pouvez contrôler vos raccourcis sous Paramètres> Mappeur de raccourcis> [Macros] .

entrez la description de l'image ici

kon psych
la source
10
Pour supprimer les espaces de fin lorsque vous enregistrez: (1) Supprimez le raccourci d'enregistrement par défaut (Ctrl + S), puis (2) affectez la macro "Découper en arrière et enregistrer" à Ctrl + S.
thdoan
1
Et pour supprimer le Saveraccourci par défaut , double-cliquez sur le Shortcutchamp puis sélectionnez-le Nonedans la liste déroulante.
Mitch
2
J'ai trouvé cette page, mis à jour mes raccourcis comme vous l'avez suggéré et utilisé avec bonheur pour toujours. Puis récemment, j'ai dû installer une nouvelle machine et j'avais complètement oublié comment je l'avais fait auparavant ... J'ai encore cherché et trouvé cette réponse! Vous devriez avoir +2 pour m'aider comme ça!
Stijn de Witt
Paramètres> Raccourci mappeur, puis onglet 'Macros'
bonob
Cela devrait être la réponse choisie pour moi ^^
Nam G VU
4

Plugins> Gestionnaire de plugins> Afficher le gestionnaire de plugins
Sous l'onglet Disponible, sélectionnez EditorConfig et cliquez sur [Installer]

Ajouter un .editorconfigfichier au dossier (nommez-le .editorconfig.pour éviter l'erreur Windows "Vous devez taper un nom de fichier" - le dernier point sera supprimé)

# trims trailing whitespace for all files; filter like [*.{json,xml}]
[*]
trim_trailing_whitespace = true

EditorConfig peut également spécifier des caractères d'encodage, de retrait et de nouvelle ligne, etc.

Webveloper
la source
1
Il semble que le plug-in EditorConfig pour Notepad ++ ne supporte pas l'option trim_trailing_whitespace
jpa
1
Support for a trim_trailing_whitespaceété ajouté le 2016-04-20 . / cc @jpa
Stijn
J'aimerais pouvoir en faire plus, même si ce n'est que pour le .editorconfig.tour. Dire que j'avais eu recours à l'invite de commandes pour créer des fichiers de points comme un homme des cavernes pendant toutes ces années.
Jamesdlin
4

J'ai changé les raccourcis pour trouver une solution à cela. J'ai supprimé le raccourci de sauvegarde (mappeur de raccourci -> menu principal -> enregistrer) et mappé Ctrl+ Sà la macro "Trim Trailing and Save" (mappeur de raccourci -> macros -> trim final et sauvegarde). De cette façon , la macro remplace la fonctionnalité sauvegarde et il n'y a pas besoin de se rappeler le Alt+ Shift+ Sraccourci.

Alcyon
la source
2

Les réponses existantes ont l'air vieilles.

Essayez le chemin ci-dessous:

Notepad++ > Edit (menu) > Blank Operations > Trim Trailing Space
Manohar Reddy Poreddy
la source
1
J'ai enregistré une macro dans "Rogner les espaces de fin" et "Convertir les onglets en espaces" pour assurer la cohérence du contrôle de version. J'ai ensuite enregistré la macro avec la combinaison de code clé Atl-T. Alt-T, Ctrl-Sest une combinaison rapide pour couper, convertir et sauvegarder. Je fais volontairement ce en deux étapes, comme je ne pas envie de couper les fichiers Markdown, ou changer d' onglet / arrière lors de la modification des fichiers d'autres qui peuvent mainteneur par défaut à une autre norme que je l' utilise. Notepad++ > Edit (menu) > Blank Operations > Trim Trailing Spaceet Notepad++ > Edit (menu) > Blank Operations > TAB to Space. (N ++ a aussi ... des Space to TABoptions.)
SherylHohman
1

Ctrl+ F-> Basculer vers l'onglet Remplacer ->

Trouver quoi: \ t \ r

Remplacer par: \ r

Assurez-vous que le mode de recherche étendue est activé, puis remplacez tout.

Si vous souhaitez également enregistrer, johanno dispose de la solution appropriée. Macro -> Trim Trailing and Save fonctionne comme spécifié.

dr4g1116
la source
Cette réponse est obsolète
Antonio
1

Autrement -

  1. Édition> Opérations vides> Supprimer les vides inutiles et la fin de vie
  2. Plugin> Outils XML> Pretty print (XML uniquement - avec sauts de ligne)

'Outils XML' est un plugin que nous pouvons installer pour notepad ++

Pritam Karmakar
la source
1

Alt+ Shift+ Sest le raccourci par défaut pour cela. C'est dans la barre de menu comme Macro -> Trim Trailing and save. Vous pouvez relier ceci sous Settings -> Shortcut Mapper -> [Macros].

Reliure 'Trim Trailing and save' via Shortcut Mapper

En vous appuyant sur la réponse de Kon Psych , si vous souhaitez supprimer automatiquement les espaces chaque fois que vous enregistrez, vous pouvez définir cette option pour remplacer le comportement Ctrl+ par défaut S. N'oubliez pas de changer ou de supprimer le raccourci de sauvegarde d'origine pour éviter les conflits.

Désactiver le raccourci "enregistrer" par défaut

Stevoisiak
la source
+1 pour 'Rappelez-vous simplement de modifier ou de supprimer le raccourci de sauvegarde d'origine pour éviter les conflits.'
Wafeeq
1

Afin de conserver les commandes de menu existantes, mappez (précédemment non affecté) Ctrl+ Tpour supprimer les espaces de fin. Ensuite, faites Ctrl+ Tet Ctrl+ Sensemble.

Cela vous permet d'apporter une petite modification à un fichier sans dérouter les utilitaires de comparaison de texte et les programmes de contrôle de code source en modifiant (potentiellement) des centaines de lignes.

al h
la source
1

Ce sont les étapes précises pour rediriger le raccourci standard "Enregistrer" Ctrl+ Sà faire à la place "Trim Trailing and Save"

  • Paramètres-> Mappeur de raccourcis ...
  • Onglet Menu principal, double-cliquez sur "Enregistrer", passez Sà Aucun
  • Macros, double-cliquez sur "Découper l’espace de fuite et Enregistrer", puis sélectionnez Ctrl+S

Le raccourci Macros peut également être modifié à partir de Macro-> Modifier le raccourci / Supprimer la macro ...

Antonio
la source
Merci, c'est absolument la meilleure réponse
simon tan