Comment supprimer des lignes spécifiques dans Notepad ++?


94

Je nettoie certains fichiers de code (C #) et je souhaite supprimer les régions. Et je voudrais supprimer toutes les lignes qui ont la chaîne '#region'. Ce n'est qu'un exemple, et je peux penser à plusieurs autres utilisations, mais est-ce encore possible?


2
Je suis tenté de voter cette question pour être hors sujet ... C'est principalement une question sur notepad ++ et un modèle de travail spécifique, mais pas nécessairement lié à la programmation: /
Andreas Niedermair

@AndreasNiedermair d'accord
displayname

Réponses:


39

Vous pouvez utiliser le menu Rechercher -> Remplacer ... ( Ctrl+ H).

Il a une fonction d'expression régulière pour le remplacement. Vous pouvez utiliser une expression régulière qui correspond à #région ainsi que tout ce qui se trouve sur la ligne et la remplacer par un espace vide.


Merci, j'ai fait ça et ça marche. Mais maintenant, j'essaye de remplacer \ n \ n par un seul \ n mais cela ne semble pas fonctionner, des idées?
Rismo

1
utiliser la recherche étendue pour remplacer les séquences d'échappement (bouton radio juste au-dessus de l'expression régulière)
John T

Merci John. Je l'ai fait et travaille pour un saut de ligne \ n, mais pas pour deux. Je recherche \ n \ n et le remplace par \ n, mais cela ne fonctionne pas. Est-ce que ça marche pour toi ?
Rismo

1
Si vous avez tapé le document sous Windows, les fins de ligne seront \ r \ n. Les fins de ligne de style UNIX sont \ n.
John T

5
Je viens également de remarquer que TextFx -> TextFx Edit -> Delete Surplus Blank Lines fait de même :)
Rismo

278

Notepad ++ v6.5

  1. ChercherMenu de -> Rechercher ... -> onglet Marquer -> Rechercher: votre texte de recherche , cochez Ligne de signet , puis Marquer tout . Cela mettra en signet toutes les lignes avec le terme de recherche, vous verrez les cercles bleus dans la marge.

  2. Puis le menu Rechercher -> Signet -> Supprimer les lignes marquées . Cela supprimera toutes les lignes marquées.

Vous pouvez également utiliser une expression régulière pour rechercher. Cette méthode ne résultera pas en une ligne vide comme celle de John et supprimera en fait la ligne.

Versions plus anciennes

  1. ChercherMenu de -> Rechercher ... -> Rechercher: votre texte de recherche , cochez Ligne de signet et cliquez sur Rechercher tout .
  2. Puis Rechercher -> Signet -> Supprimer les lignes marquées

8
Je vous remercie! Wow, je n'étais pas au courant que NP ++ a fait cela ... un gain de temps formidable. Rechercher et marquer des lignes + supprimer des lignes. Impressionnant. Je vous remercie!!
Matthew M.

quel hack, pourquoi ne puis-je pas simplement remplacer regex \ r \ n par "" :(
felickz

13
C'est l'un de ces petits joyaux que je trouve où j'aimerais pouvoir voter pour plus de 1. Je ne peux pas vous dire combien de temps j'ai perdu au fil des ans sans jamais réaliser que c'était disponible! Le seul problème est maintenant que je suppose que je dois être plus productif ...
Milner

1
Si vous recherchez ceci. «Mark» a maintenant son propre onglet dans le menu contextuel de recherche.
bunnybare

1
@bunnybare, merci. J'ai mis à jour la réponse pour la dernière version.
Ray

4

Voici une manière de supprimer complètement les lignes contenant "YOURTEXT":

  • Ouvrez la boîte de dialogue Remplacer
  • Entrez la chaîne de recherche suivante: .*YOURTEXT.*[\r]?[\n](remplacez VOTRE TEXTE par votre texte)
  • Activer "Expression régulière"
  • Désactiver ". Correspond à la nouvelle ligne"

L'expression régulière donnée correspond à la fois à la fin des lignes Windows et Unix.

Si votre texte contient des caractères qui ont une signification particulière pour l'expression régulière, comme la barre oblique inverse, vous devrez les échapper.


Pourquoi utilisez-vous une classe de caractères pour un seul personnage?
Toto

4

C'est la fonctionnalité la plus courante de Notepad ++ que j'utilise pour mettre à jour mon code.

Tout ce que vous avez à faire est:

  • Sélectionnez la chaîne commune présente dans toutes les lignes.
  • Appuyez sur Ctrl+F
  • Dans l' onglet Marquer , collez la chaîne récurrente et cochez la case Ligne de signet .
  • Cliquer sur Mark All
  • Maintenant, allez dans le menu RechercheSignetSupprimer les lignes marquées

Vous pouvez vous référer à ce lien pour une explication illustrée.

http://www.downloadorinstall.com/best-notepad-tips-and-tricks-for-faster-work-and-development/


Le lien semble être rompu (ou peut-être nécessiter une quantité effrayante de code JavaScript à utiliser).
Peter Mortensen

2

La réponse de Jacob à John T fonctionne parfaitement pour supprimer la ligne entière, et vous pouvez trouver dans les fichiers avec cela. Assurez-vous de cocher "Expression régulière" en bas.

Solution: ^.*#region.*$


2
il a dit qu'il voulait supprimer la ligne, ne pas la remplacer par quelque chose
felickz

1

Recherchez votre fin de vie, \ n ou \ r \ n. Remplacez ensuite .*#region.*\r\npar rien en mode regexpr.


0

Vous pouvez essayer de remplacer #region par \ n, en activant le mode de recherche étendue.


2
OP a dit qu'il voulait "supprimer toutes les lignes", vous la remplaceriez par une nouvelle ligne
felickz

0

En utilisant regex et find & replace, vous pouvez supprimer toutes les lignes contenant #region sans laisser de lignes vides. Parce que pour une raison quelconque, la méthode de Ray ne fonctionnait pas sur ma machine, j'ai cherché (.*#region.*\n)|(\n.*#region.*)et laissé la boîte de remplacement vide.

Cette expression régulière garantit que le if #regionest trouvé sur la première ligne, la nouvelle ligne de fin est supprimée et si elle est trouvée sur la dernière ligne, la nouvelle ligne précédente est supprimée.

Pourtant, la solution de Ray est la meilleure si elle fonctionne pour vous.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.