¿Cómo elimino líneas específicas en Notepad ++?

94

Estoy limpiando algunos archivos de código (C #) y quiero eliminar las regiones. Y me gustaría eliminar todas las líneas que tienen la cadena '#region'. Eso es solo un ejemplo, y puedo pensar en varios usos más, pero ¿es eso posible?

Rismo
fuente
2
Estoy tentado a votar esta pregunta para que esté fuera de tema ... Es principalmente una pregunta en el bloc de notas ++ y un patrón de trabajo específico, pero no necesariamente relacionado con la programación: /
Andreas Niedermair
@AndreasNiedermair está de acuerdo
displayname

Respuestas:

39

Puede usar el menú Buscar -> Reemplazar ... ( Ctrl+ H).

Tiene una función de expresión regular para reemplazar. Puede usar una expresión regular que coincida con #region, así como cualquier otra cosa que esté en la línea, y reemplazarla con un espacio vacío.

John T
fuente
Gracias, hice eso y funciona. Pero ahora estoy tratando de reemplazar \ n \ n con solo uno \ n pero no parece funcionar, ¿alguna idea?
Rismo
1
use la búsqueda extendida para reemplazar secuencias de escape (botón de radio justo encima de la expresión regular)
John T
Gracias John. Hice eso y funciona para un salto de línea \ n, pero no para dos. Estoy buscando \ n \ ny reemplazándolo con \ n, pero no funciona. Funciona para ti ?
Rismo
1
Si escribió el documento en Windows, los finales de línea serán \ r \ n. Los finales de línea de estilo UNIX son \ n.
John T
5
También acabo de notar que TextFx -> TextFx Edit -> Delete Surplus Blank Lines hace lo mismo :)
Rismo
278

Bloc de notas ++ v6.5

  1. Menú de búsqueda -> Buscar ... -> pestaña Marcar -> Buscar: el texto de búsqueda , marque Línea de marcador y luego Marcar todo . Esto marcará todas las líneas con el término de búsqueda, verá los círculos azules en el margen.

  2. Luego, menú Buscar -> Marcador -> Eliminar líneas marcadas . Esto eliminará todas las líneas marcadas.

También puede utilizar una expresión regular para buscar. Este método no dará como resultado una línea en blanco como la de John y, de hecho, eliminará la línea.

Versiones mas antiguas

  1. Menú de búsqueda -> Buscar ... -> Buscar qué: su texto de búsqueda , marque Línea de marcador y haga clic en Buscar todo .
  2. Luego busque -> Marcador -> Eliminar líneas marcadas
Rayo
fuente
8
¡Gracias! Vaya, no sabía que NP ++ hizo esto ... un gran ahorro de tiempo. Buscar y marcar líneas + eliminar líneas. Increíble. ¡¡Gracias!!
Matthew M.
qué truco, ¿por qué no puedo simplemente reemplazar \ r \ n con "" :(
felickz
13
Esta es una de esas pequeñas gemas que encuentro donde desearía poder votar más de 1. ¡No puedo decirte cuánto tiempo he perdido a lo largo de los años sin darme cuenta de que esto estaba disponible! El único problema es que ahora creo que necesito ser más productivo ...
Milner
1
Si está buscando esto. 'Mark' tiene su propia pestaña ahora en el menú emergente de búsqueda.
bunnybare
1
@bunnybare, gracias. Actualicé la respuesta a la última versión.
Ray
4

Aquí hay una forma que elimina las líneas que contienen "YOURTEXT" por completo:

  • Abra el cuadro de diálogo Reemplazar
  • Ingrese la siguiente cadena de búsqueda: .*YOURTEXT.*[\r]?[\n](reemplace YOURTEXT con su texto)
  • Habilitar "Expresión regular"
  • Desactivar ". Coincide con la nueva línea"

La expresión regular dada coincide con el final de las líneas de Windows y Unix.

Si su texto contiene caracteres que tienen un significado especial para la expresión regular, como la barra invertida, deberá escapar de ellos.

ocroqueta
fuente
¿Por qué estás usando la clase de personaje para un solo personaje?
Toto
4

Esta es la característica más común de Notepad ++ que utilizo para actualizar mi código.

Todo lo que necesitas hacer es:

  • Seleccione una cadena común que esté presente en todas las líneas.
  • Presione Ctrl+F
  • En la pestaña Marcar , pegue la cadena recurrente y marque la casilla de verificación Línea de marcador .
  • Haga clic en Mark All
  • Ahora vaya al menú BuscarMarcadorEliminar líneas marcadas

Puede consultar este enlace para obtener una explicación pictórica.

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

Pantalón Rishabh
fuente
El enlace parece estar roto (o quizás requiera una cantidad aterradora de código JavaScript para usar).
Peter Mortensen
2

La respuesta de Jacob a John T funciona perfectamente para eliminar toda la línea, y puedes Buscar en archivos con eso. Asegúrese de marcar "Expresión regular" en la parte inferior.

Solución: ^.*#region.*$

Mella
fuente
2
dijo que quiere eliminar la línea, no reemplazarla con algo
felickz
1

Investigue cuál es su EOL, \ n o \ r \ n. Luego reemplace .*#region.*\r\ncon nada en modo regexpr.

Val
fuente
0

Puedes intentar reemplazar #region con \ n, activando el modo de búsqueda extendida.

Polo Norte
fuente
2
OP dijo que quería "eliminar todas las líneas", lo reemplazaría con una nueva línea
felickz
0

Usando expresiones regulares y buscar y reemplazar, puede eliminar todas las líneas que contienen # región sin dejar líneas vacías. Porque por alguna razón el método de Ray no funcionó en mi máquina, busqué (.*#region.*\n)|(\n.*#region.*)y dejé el cuadro de reemplazo vacío.

Esa expresión regular garantiza que si #regionse encuentra en la primera línea, se elimina la nueva línea final y, si se encuentra en la última línea, se elimina la nueva línea anterior.

Aún así, la solución de Ray es la mejor si funciona para usted.

Jorge
fuente