Como excluo linhas específicas no Notepad ++?

94

Estou limpando alguns arquivos de código (C #) e desejo remover as regiões. E eu gostaria de deletar todas as linhas que possuem a string '#region'. Isso é apenas um exemplo, e posso pensar em vários outros usos, mas isso é possível?

Rismo
fonte
2
Estou tentado a votar esta questão para sair do tópico ... É principalmente uma questão sobre notepad ++ e padrão de trabalho específico, mas não necessariamente relacionado à programação: /
Andreas Niedermair
@AndreasNiedermair concordam
displayname

Respostas:

39

Você pode usar o menu Pesquisar -> Substituir ... ( Ctrl+ H).

Possui um recurso de expressão regular para substituição. Você pode usar um regex que corresponda a #region, bem como qualquer outra coisa que esteja na linha, e substituí-lo por um espaço vazio.

John T
fonte
Obrigado, eu fiz isso e funciona. Mas agora estou tentando substituir \ n \ n por apenas um \ n, mas não parece funcionar, alguma ideia?
Rismo
1
use a pesquisa estendida para substituir as sequências de escape (botão de opção logo acima do regex)
John T
Obrigado John. Eu fiz isso e funciona para uma quebra de linha \ n, mas não para duas. Estou procurando por \ n \ n e substituindo por \ n, mas não funciona. Funciona para você ?
Rismo
1
Se você digitou o documento no Windows, os finais de linha serão \ r \ n. As terminações de linha do estilo UNIX são \ n.
John T
5
Também notei que TextFx -> Editar TextFx -> Excluir linhas em branco excedentes faz o mesmo :)
Rismo
278

Notepad ++ v6.5

  1. Menu de pesquisa -> Encontrar ... -> guia Marcar -> Encontrar: seu texto de pesquisa , marque Linha do marcador e Marcar tudo . Isso marcará todas as linhas com o termo de pesquisa, você verá os círculos azuis na margem.

  2. Em seguida, menu Pesquisar -> Marcador -> Remover Linhas Marcadas . Isso excluirá todas as linhas marcadas.

Você também pode usar um regex para pesquisar. Este método não resultará em uma linha em branco como a de John e, na verdade, excluirá a linha.

Versões mais antigas

  1. Menu Pesquisar -> Encontrar ... -> Encontrar o que: seu texto de pesquisa , marque Linha de favoritos e clique em Encontrar tudo .
  2. Em seguida, pesquise -> Marcador -> Remover linhas marcadas
Raio
fonte
8
Obrigado! Uau, eu não sabia que o NP ++ fazia isso ... uma grande economia de tempo. Encontre e marque linhas + exclua linhas. Impressionante. Obrigado!!
Matthew M.
que hack, por que não posso simplesmente regex substituir \ r \ n por "" :(
felickz
13
Esta é uma daquelas pequenas joias que encontro onde gostaria de poder votar mais do que 1. Não sei dizer quanto tempo perdi ao longo dos anos sem nunca perceber que isso estava disponível! O único problema é que agora eu preciso ser mais produtivo ...
Milner
1
Se você está procurando por isso. 'Mark' tem sua própria guia agora no menu pop-up Pesquisar.
bunnybare de
1
@bunnybare, obrigado. Eu atualizei a resposta para a versão mais recente.
Ray
4

Esta é uma maneira de remover as linhas que contêm "SEUTEXTO" completamente:

  • Abra a caixa de diálogo Substituir
  • Digite a seguinte string de pesquisa: .*YOURTEXT.*[\r]?[\n](substitua SEUTEXTO pelo seu texto)
  • Habilitar "Expressão regular"
  • Desative ". Corresponde a nova linha"

A expressão regular fornecida corresponde ao final das linhas do Windows e do Unix.

Se o seu texto contiver caracteres que tenham um significado especial para expressões regulares, como a barra invertida, você precisará excluí-los.

ocroquete
fonte
Por que você está usando a classe de personagem para um único personagem?
Toto de
4

Este é o recurso mais comum do Notepad ++ que uso para atualizar meu código.

Tudo que você precisa fazer é:

  • Selecione a string comum que está presente em todas as linhas.
  • Pressione Ctrl+F
  • Na guia Marcar , cole a string recorrente e marque a caixa de seleção Linha do marcador .
  • Clique em Mark All
  • Agora vá para o menu PesquisarMarcadorRemover linhas marcadas

Você pode consultar este link para obter uma explicação pictórica.

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

Rishabh Pant
fonte
O link parece estar quebrado (ou talvez exija uma quantidade assustadora de código JavaScript para usar).
Peter Mortensen
2

A resposta de Jacob a John T funciona perfeitamente para deletar toda a linha, e você pode Find in Files com isso. Certifique-se de marcar "Expressão regular" na parte inferior.

Solução: ^.*#region.*$

usuario
fonte
2
ele disse que deseja excluir a linha, não substituí-la por algo
felickz,
1

Investigue qual é o seu EOL, \ n ou \ r \ n. Em seguida, substitua .*#region.*\r\npor nada no modo regexpr.

Val
fonte
0

Você pode tentar substituir #region por \ n, ativando o modo de pesquisa estendida.

Polo Norte
fonte
2
OP disse que queria "deletar todas as linhas", você a substituiria por uma nova linha
felickz
0

Usando regex e localizar e substituir, você pode excluir todas as linhas que contêm #region sem deixar linhas vazias. Porque, por algum motivo, o método de Ray não funcionou na minha máquina, procurei(.*#region.*\n)|(\n.*#region.*) e deixei a caixa de substituição vazia.

Essa regex garante que o if #region seja encontrado na primeira linha, a nova linha final seja excluída e, se for encontrado na última linha, a nova linha anterior seja excluída.

Ainda assim, a solução de Ray é a melhor se funcionar para você.

George
fonte