Como remover automaticamente os espaços em branco à direita no Eclipse?

422

A pergunta tem duas partes, uma das quais eu já tenho a resposta.

  1. Como remover automaticamente o espaço em branco à direita do arquivo inteiro que está sendo editado ? -> Resposta: use o plugin AnyEdit , que pode ser configurado para isso em qualquer salvamento no arquivo.
  2. Como remover automaticamente o espaço em branco à direita apenas das linhas que alterei ? -> Isso eu não sei e gostaria de receber qualquer ajuda.
Jan Żankowski
fonte
97
Ficaria feliz se pudesse convencer o Eclipse a parar de adicionar espaços em branco à direita que não digitei.
divegeek
5
Você não precisa de um plugin. Basta usar C ++ -> Editor -> Salvar ações. Também Geral -> Editores -> Editores de Texto -> Mostrar caracteres em branco (clique nele para obter configurações detalhadas) é extremamente útil.
Trass3r
3
A ação padrão de salvamento não corta os espaços em branco à direita nos comentários do Java Doc. Além disso, é limitado pelo fato de funcionar apenas em arquivos Java. Temos um sistema de revisão de código que marca todos os espaços em branco finais como erros. O AnyEdit é inestimável para cuidar dos espaços em branco à direita para todos os tipos de arquivo. Além disso, pode ser útil descobrir quais restrições sua empresa possui para softwares de terceiros. AnyEdit plugin tem uma licença EPL ( opensource.org/licenses/eclipse-1.0.php ) [a partir daqui: andrei.gmxhome.de/anyedit/index.html]
Ashutosh Jindal
1
Não consegui descobrir por que os espaços em branco no fim das linhas foram removidos de repente, até que vi sua pergunta e descobri que era por causa do AnyEditPlugin. Obrigado!
Tzafrir 21/03/16

Respostas:

142
  1. Removendo o espaço em branco de todo o arquivo que está sendo editado :

Preferences-> Java-> Editors-> Save Actions-> verificação Perform the selected actions on save-> verificação Additional actions-> clique em Configure..-> vá para a Code organizingguia -> verificação Remove trailing whitespace-> seleção All lines.

  1. Removendo o espaço em branco apenas das linhas que alterei :

Preferences-> Java-> Editor-> Save Actions-> verificação " Perform the selected actions on save-> verificação Format source code-> seleção Format edited lines.

Observe que não é necessário clicar Configure the formatter settings on the Formatter page- todos os estilos de código incluem automaticamente a remoção de espaço em branco à direita. Pelo menos, não consegui encontrar uma configuração para isso na configuração do Formatador, e funcionou imediatamente para os estilos internos de convenções Java, Eclipse, Eclipse 2.1 e GoogleStyle .

Ao usar essa configuração, você obviamente também precisará desativar a solução para a parte 1 da pergunta.

Eclipse version checked: 4.5.2, 4.11
Dan Berindei
fonte
Como defino o formato? Eu uso o link Formatador ou o botão Configurar?
Vijay Kotari
Essa opção também aparece no PDT para PHP, em Salvar ações.
Thaddeusmt 28/02
1
A resposta @VijayKotari foi editada - não é necessário definir um formato.
Jan Żankowski
350

Presumo que suas perguntas sejam com relação ao código Java. Se for esse o caso, você realmente não precisa de plugins extras para realizar 1). Você pode simplesmente ir para Preferências -> Java -> Editor -> Salvar ações e configurá-lo para remover o espaço em branco à direita .

Pelo que parece, você também quer fazer deste um cenário para toda a equipe, certo? Para facilitar a vida e evitar lembrar-se de configurá-la sempre que houver um novo espaço de trabalho, você pode definir a ação salvar como uma preferência específica do projeto que será armazenada no seu SCM junto com o código.

Para fazer isso, clique com o botão direito do mouse em seu projeto e vá para Propriedades -> Editor Java -> Salvar Ações . A partir daí, você pode ativar as configurações específicas do projeto e configurá-lo para remover o espaço em branco à direita (entre outras coisas úteis).

Nota : Esta opção foi removida no Eclipse Kepler (4.3) e nas seguintes versões.

NB # 2: A opção parece estar de volta no Eclipse Luna -Luna Service Release 1a (4.4.1)

gcastro
fonte
2
Obrigado, gcastro - é mais fácil que o AnyEdit. Infelizmente, é para todo o arquivo que está sendo editado. Ainda não sei como fazer isso apenas pelas linhas que eu mudei - parece que é provavelmente impossível no momento.
Jan Żankowski 6/08/09
7
Bom para Java; bom para C / C ++ também; mas não para Python no PyDev.
22715 Craig McQueen
14
Para Python no PyDev, fiz uma solicitação de recurso para isso. Veja: sourceforge.net/tracker/…
Craig McQueen
5
FYI ... O mesmo conceito para PHP. Preferências -> PHP -> Editor -> Salvar Ações.
seanmrafferty
1
Não sei se isso já funcionou, mas certamente não parece funcionar na versão mais recente do Eclipse (Kepler). Você pode executar o formatador apenas em linhas editadas, mas aparar espaços em branco é limitado a todas as linhas ou ignorar linhas vazias - realmente irritante.
22414 Thor84no
73

Você não precisa de nenhum plugin para fazer isso. Por exemplo, se você codificar JAVA, poderá apagar os espaços em branco finais configurando ações de salvamento:

Eclipse 3.6

Preferences-> Java-> Editors-> Save Actions-> Verificar Perform the selected actions on save-> Verificar Additional actions-> Clique no Configure..botão.

Na Code organizingguia, verifiqueRemove trailing whitespace

Dave
fonte
4
Esta é a primeira resposta que aconselha especificamente procurar em "Ações adicionais" para "Remover espaço em branco à direita". Obrigado.
26412 DavidRR
7
isso só funciona para arquivos .java, normalmente estou trabalhando com dezenas de extensões
Eildosa
Funciona para o Eclipse 4.12
Matilda Smeds 01/09/19
46

O PyDev pode fazer isso usando Ctrl+ Shift+ Fse você tiver a opção de formatador de código configurada para fazê-lo ou during saving:

Eclipse-> Window-> Preferences-> PyDev-> Editor-> Code Style-> Code Formatter:

Eu uso pelo menos estes:

  • Formatação automática antes de salvar
  • Linhas de corte certas?
  • Adicionar nova linha no final do arquivo
Ciantic
fonte
5
Isso não cobre a questão de remover o espaço apenas das linhas editadas. Também é um recurso perigoso, pois executa todas as opções do Code Formatter e uma opção desmarcada não é a mesma coisa que "ignorar / não usar". ex: se "Usar espaço após vírgulas" estiver desmarcado, o Code Formatter removerá esses espaços em vez de ignorar a opção.
JCotton
7
Há uma nova opção no PyDev Code Formatter: Ao salvar, aplique a formatação apenas nas linhas alteradas.
warvariuc
2
-1 por dar uma resposta geral demais - a pergunta era apenas sobre espaço em branco; ativar a formatação automática de código significa que as confirmações de sua origem começarão a ter itens não planejados, causando um histórico confuso, pois confirmações contêm coisas não relacionadas ao título de confirmação.
precisa
36

Faça o seguinte:

Preferences-> Java-> Editor->Save Actions

insira a descrição da imagem aqui

Sumit Singh
fonte
19

É possível mapear uma chave no Eclipse para remover manualmente os espaços em branco à direita no arquivo inteiro, mas apenas mediante solicitação, em vez de salvar automaticamente. (Preferências / Chaves e, em seguida, mapeie um conjunto de chaves para Arquivo / Remover espaço em branco à direita) Isso pode ser útil se você quiser limpar todos os novos arquivos, mas mantenha o código legado intocado.

Outra estratégia é ativar a exibição visual do espaço em branco, pelo menos você saberá quando adicionar um espaço em branco à direita. Até onde eu sei, não há como exibir apenas espaços em branco à direita, mas ficarei feliz em provar que estou errado.

Kena
fonte
Muito obrigado por esta resposta! Até agora, é a única maneira que encontrei para o plugin Aptana.
Igor Zinov'yev 18/10/10
11

Em uma pitada, para os editores que não oferecem suporte à remoção de espaços em branco finais (por exemplo, o editor XML), você pode removê-lo de todas as linhas, localizando e substituindo, ativando expressões regulares e depois localizando "[\ t] + $ "e substituindo-o por" "(em branco). Provavelmente existe uma regex melhor para fazer isso, mas funciona para mim sem a necessidade de instalar o AnyEdit.

Malvineous
fonte
9

Eu diria AnyEdit também. Ele não fornece essas funcionalidades específicas. No entanto, se você e sua equipe usarem os recursos do AnyEdit a cada ação salva, quando você abrir um arquivo, ele não deverá ter nenhum espaço em branco à direita.

Portanto, se você modificar esse arquivo e adicionar novos espaços à direita, durante a operação de salvamento, o AnyEdit removerá apenas esses novos espaços, pois são os únicos espaços à direita nesse arquivo.

Se, por algum motivo, você precisar manter os espaços à direita nas linhas que não foram modificadas por você, não tenho resposta para você e não tenho certeza se esse tipo de recurso existe em qualquer plug-in do Eclipse ...

Romain Linsolas
fonte
4
Sim, eu gostaria de manter os espaços nas linhas que não foram modificados por mim. Esse é o comportamento padrão do Intellij Idea (remova os espaços nas minhas linhas, mantenha-os nos outros) e gostaria de obter isso no Eclipse . Obrigado pela resposta.
Jan Żankowski
5

Para php, há também uma opção:insira a descrição da imagem aqui

E aí cara
fonte
4

Existe uma maneira muito fácil de fazer isso com o sed, a ferramenta de linha de comando do Unix. Você provavelmente poderia criar uma macro no Eclipse para executar isso:

sed -i 's/[[:space:]]*$//' <filename>
jcoffland
fonte
4

Como o @Malvineous disse, não é profissional, mas uma solução alternativa para usar o método Localizar / Substituir para remover o espaço à direita (abaixo, incluindo a guia U + 0009 e o espaço em branco U + 0020).
Basta pressionar Ctrl + F (ou comando + F)

  1. Encontrar [\t ][\t ]*$
  2. Substitua por uma sequência em branco
  3. Use expressões regulares
  4. Substitua tudo

extra:
para remover o espaço inicial, localize em ^[\t ][\t ]*vez de [\t ][\t ]*$
Para remover linhas em branco, localize^\s*$\r?\n

fuweichin
fonte
1
Que tal em [\t ]+$vez de [\t ][\t ]*$?
Jonah Graham #
1

Não conheço nenhuma solução para a segunda parte da sua pergunta. O motivo é que não está claro como definir as alterações . Mudou quando? Apenas entre 2 salvamentos ou entre confirmações ... Basicamente - esqueça.

Suponho que você gostaria de seguir algumas diretrizes, mas não toque no restante do código. Mas a diretriz deve ser usada de maneira geral, e não para mordidas e pedaços. Então, minha sugestão é - altere todo o código para a diretriz: é uma operação única, mas certifique-se de que todos os seus desenvolvedores tenham o mesmo plug-in (AnyEdit) com as mesmas configurações para o projeto.

furgão
fonte
7
Como é uma ação de salvamento, as linhas serão alteradas entre os salvos. O Eclipse já acompanha essas linhas para marcação na barra lateral.
starblue
0

Eu usei este comando para git: git config --global core.whitespace cr-at-eol

Remove os ^Mcaracteres que estão à direita.

user7577563
fonte