Come si eliminano righe specifiche in Notepad ++?


94

Sto ripulendo alcuni file di codice (C #) e desidero rimuovere le regioni. E vorrei eliminare tutte le righe che hanno la stringa "#region". Questo è solo un esempio e posso pensare a molti altri usi, ma è anche possibile?


2
Sono tentato di votare questa domanda per essere fuori tema ... È principalmente una domanda su notepad ++ e su uno schema di lavoro specifico, ma non necessariamente correlata alla programmazione: /
Andreas Niedermair

@AndreasNiedermair d'accordo
displayname

Risposte:


39

È possibile utilizzare il menu Cerca -> Sostituisci ... ( Ctrl+ H).

Ha una funzione di espressione regolare per la sostituzione. Puoi usare una regex che corrisponda a #region così come qualsiasi altra cosa sia sulla riga e sostituirla con uno spazio vuoto.


Grazie, l'ho fatto e funziona. Ma ora sto cercando di sostituire \ n \ n con uno solo \ n ma non sembra funzionare, qualche idea?
Rismo

1
usa la ricerca estesa per sostituire le sequenze di escape (pulsante di opzione appena sopra la regex)
John T

Grazie John. L'ho fatto e funziona per un'interruzione di riga \ n, ma non per due. Sto cercando \ n \ ne lo sostituisco con \ n, ma non funziona. Per te funziona ?
Rismo

1
Se hai digitato il documento su Windows, le terminazioni di riga saranno \ r \ n. Le terminazioni di riga in stile UNIX sono \ n.
John T

5
Inoltre ho appena notato che TextFx -> TextFx Modifica -> Elimina righe vuote in eccesso fa lo stesso :)
Rismo

278

Notepad ++ v6.5

  1. Menu Cerca -> Trova ... -> Scheda Contrassegna -> Trova cosa: il testo della ricerca , seleziona Riga segnalibro , quindi Seleziona tutto . Questo contrassegnerà tutte le linee con il termine di ricerca, vedrai i cerchi blu a margine.

  2. Quindi menu di ricerca -> Segnalibro -> Rimuovi righe segnalibro . Ciò eliminerà tutte le righe contrassegnate.

Puoi anche utilizzare un'espressione regolare per la ricerca. Questo metodo non risulterà in una riga vuota come quella di John e in realtà eliminerà la riga.

Versioni precedenti

  1. Menu Cerca -> Trova ... -> Trova cosa: il testo di ricerca , seleziona Riga segnalibro e fai clic su Trova tutto .
  2. Quindi Cerca -> Segnalibro -> Rimuovi righe con segnalibro

8
Grazie! Wow, non sapevo che NP ++ facesse questo .. un grande risparmio di tempo. Trova e aggiungi righe ai segnalibri + elimina righe. Eccezionale. Grazie!!
Matthew M.

che trucco, perché non posso semplicemente sostituire le
espressioni regolari

13
Questa è una di quelle piccole gemme che trovo dove vorrei poter votare più di 1. Non posso dirti quanto tempo ho sprecato negli anni senza rendermi conto che era disponibile! L'unico problema è che ora credo di dover essere più produttivo ...
Milner

1
Se stai cercando questo. "Mark" ha ora la sua scheda nel menu popup di ricerca.
bunnybare

1
@bunnybare, grazie. Ho aggiornato la risposta per l'ultima versione.
Ray

4

Ecco un modo che rimuove completamente le righe contenenti "YOURTEXT":

  • Apri la finestra di dialogo Sostituisci
  • Inserisci la seguente stringa di ricerca: .*YOURTEXT.*[\r]?[\n](sostituisci IL TUO TESTO con il tuo testo)
  • Abilita "Espressione regolare"
  • Disattiva ". Corrisponde a nuova riga"

L'espressione regolare data corrisponde alla fine delle righe di Windows e Unix.

Se il tuo testo contiene caratteri che hanno un significato speciale per l'espressione regolare, come la barra rovesciata, dovrai evitarli.


Perché stai usando la classe di caratteri per un singolo personaggio?
Toto

4

Questa è la caratteristica più comune di Notepad ++ che utilizzo per aggiornare il mio codice.

Tutto quello che devi fare è:

  • Seleziona una stringa comune presente in tutte le righe.
  • Premi Ctrl+F
  • Nella scheda Contrassegna , incolla la stringa ricorrente e seleziona la casella di controllo Riga segnalibro .
  • Clicca su Mark All
  • Ora vai al menu CercaSegnalibroRimuovi righe segnalibro

È possibile fare riferimento a questo collegamento per una spiegazione pittorica.

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


Il collegamento sembra essere interrotto (o forse richiede una quantità spaventosa di codice JavaScript da utilizzare).
Peter Mortensen

2

La risposta di Jacob a John T funziona perfettamente per eliminare l'intera riga, e puoi trovare nei file con quello. Assicurati di selezionare "Espressione regolare" in basso.

Soluzione: ^.*#region.*$


2
ha detto che vuole cancellare la riga, non sostituirla con qualcosa
felickz

1

Verifica qual è il tuo EOL, \ n o \ r \ n. Quindi sostituire .*#region.*\r\ncon niente in modalità regexpr.


0

Puoi provare a sostituire #region con \ n, attivando la modalità di ricerca estesa.


2
OP ha detto che voleva "eliminare tutte le righe", tu lo avresti sostituito con una nuova riga
felickz

0

Utilizzando regex e trova e sostituisci, puoi eliminare tutte le righe che contengono #region senza lasciare righe vuote. Perché per qualche motivo il metodo di Ray non ha funzionato sulla mia macchina, ho cercato (.*#region.*\n)|(\n.*#region.*)e ho lasciato vuota la casella di sostituzione.

Quella regex garantisce che if #region si trova sulla prima riga, il newline finale viene eliminato e se si trova sull'ultima riga viene eliminato il newline precedente.

Tuttavia, la soluzione di Ray è la migliore se funziona per te.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.