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.

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

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)


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


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

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


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.


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.


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 ...


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



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>

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


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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.