Como altero o Eclipse para usar espaços em vez de guias?

895

Por padrão, o Eclipse recua com um caractere de tabulação rígido. Como faço para alterá-lo para espaços?

Brian Deacon
fonte
43
@ i3ensays porque as guias são apresentadas de maneira diferente em diferentes editores ou ambientes, enquanto os espaços são sempre consistentes.
Mmmdreg #
29
@mmmdreg exatamente o meu ponto. os espaços são rígidos e inúteis. O uso de guias dá liberdade ao visualizador para configurar seu editor conforme desejado. Gosto que minhas guias sejam exibidas como 2 espaços, meu colega 4. Isso não é possível sem o uso de guias. Meu colega aqui e eu lutamos com espaços quando cada um formata em nosso respectivo editor; guias não são um problema; é por isso que eles foram inventados (suspeito).
I3ensays
15
@ i3ensays amém, irmão! Venho tentando fazer as pessoas entenderem esse conceito há mais de 10 anos ( rizzoweb.com/java/tabs-vs-spaces.html ). O que realmente me assusta é que, como programadores, você pensaria que todos entenderiam o conceito de abstrações (uma guia é uma abstração da indentação de código, enquanto um número fixo de espaços é uma implementação codificada) - mas, infelizmente, parece que muitos programadores não podem ver a abstração aqui.
E-Riz
28
@ i3ensays Sua equipe deve ter um padrão de codificação que indique claramente como o código é formatado. Isso economizaria tempo, impedindo as batalhas que você mencionou. Você deve adotar um o mais cedo possível, mas esse padrão certamente indicará que nunca serão usadas abas porque essa guerra santa foi vencida pelas "pessoas do espaço" há séculos, para que um padrão não o ajude. Além das questões de alinhamento, uma das maiores razões para os espaços é que as ferramentas de controle de revisão e os revisores de código não precisarão lidar com esse problema. Comecei do seu lado nesta batalha há 20 anos, mas finalmente aprendi a abraçar o espaço.
Coruja noturna
12
O motivo é que as pessoas acabam inevitavelmente com combinações de guias e espaços e, em alguns editores, o código não será exibido corretamente. Se todo mundo usa apenas espaços, isso nunca é um problema.
Eamonn McEvoy

Respostas:

1239

Editor Java

  1. Clique em Janela » Preferências
  2. Expanda Java » Estilo de código
  3. Clique em Formatador
  4. Clique no botão Editar
  5. Clique na guia Recuo
  6. Em Configurações gerais , defina a política da guia como:Spaces only
  7. Clique em OK ad nauseam para aplicar as alterações.

[ Nota : Se necessário, salve o perfil com um novo nome, pois o perfil padrão não pode ser substituído.]

Editor de texto padrão

Antes da versão 3.6:

Window->Preferences->Editors->Text Editors->Insert spaces for tabs

Versão 3.6 e posterior:

  1. Clique em Janela »Preferências
  2. Expanda Geral » Editores
  3. Clique Editores de texto
  4. Verifica Inserir espaços para guias
  5. Clique em OK ad nauseam para aplicar as alterações.

Observe que o editor de texto padrão é usado como base para muitos editores não Java no Eclipse. É surpreendente que essa configuração não estivesse disponível até o 3.3.

C / C ++

  1. Clique em Janela » Preferências
  2. Expanda C / C ++ » Estilo do código
  3. Clique em Formatador
  4. Clique no botão Novo para criar um novo perfil e, em seguida, em OK para continuar
  5. Clique na guia Recuo
  6. Em Configurações gerais , defina a política da guia como:Spaces only
  7. Clique em OK ad nauseam para aplicar as alterações.

HTML

  1. Clique em Janela » Preferências
  2. Expanda Web » Arquivos HTML
  3. Clique em Editor
  4. Em Formatação , selecione o botão de opção Recuar usando espaços
  5. Clique em OK para aplicar as alterações.

CSS

Siga as mesmas instruções para HTML, mas selecione Arquivos CSS em vez de Arquivos HTML .

JSP

Por padrão, os arquivos JSP seguem as preferências de formatação dos arquivos HTML.

XML

O espaçamento de arquivos XML é configurado em Preferências.

  1. Clique em Janela » Preferências
  2. Expanda XML » Arquivos XML
  3. Clique em Editor
  4. Selecione Recuar usando espaços
  5. Você pode especificar o tamanho do recuo, se necessário: número de espaços a serem recuados.
Dave Ray
fonte
19
Para aqueles que possuem o MyEclipse instalado ou qualquer outro IDE construído sobre o Eclipse, você pode ter outro editor substituindo suas configurações. Esse foi o caso do MyEclipse e JavaScript. Eu tinha minha configuração "Inserir espaços para guias" ativada nos Editores de texto, mas as guias ainda estavam sendo usadas em vez de espaços. Eu estava prestes a encerrar o dia e considerá-lo um bug, mas vi um segundo editor de arquivos JavaScript (* .js) na lista "Editores Associados".
John
5
Pode ser uma dica útil, mas se você tiver o mesmo comportamento, verifique se o arquivo possui outros editores associados, pois eles podem estar substituindo suas configurações. Para fazer isso, vá para Janela> Preferências> Geral> Editores> Associações de Arquivos>, em seguida, procure a extensão do arquivo que está arruinando o seu dia nessa lista> clique nela e veja a lista de Editores Associados abaixo
John
106
para o arquivo Java existente, pressione Ctrl-A para destacar tudo e, em seguida, Ctrl-I para aplicar os recuos atuais. Caso contrário, as guias existentes impedirão espaços em novas linhas criadas com Enter. Ele também substitui as guias existentes por espaços.
Topchef
4
Para C / C ++, é preciso também alterar C / C ++ -> "Code Style". Este é de longe o mais irritante neste ótimo software.
traçado
3
Para ser mais detalhado, para C / C ++ e Ecplipse 3.6 ou posterior, a segunda etapa foi: Janela> Preferências> C / C ++> Estilo de Código> Formatador> Novo, depois escolha qualquer nome de Perfil, verifique se Open the edit dialog nowestá ativado, pressione e OK, em seguida, em a Indentationguia, você verá Tab Policy. Defina como Spaces Only.
Garrett
150

Para o editor de texto padrão:

  • Gerais » Editores » Editores de Texto » Insert spaces for tabs (verificá-lo)

Para PHP:

  • PHP » Estilo de código » Formatador » Tab policy (escolha" espaços ")
  • PHP » Estilo de código » Formatador » Indentation size (definido como 4)

Para CSS:

  • Web » CSS » Editor » Indent using spaces (selecione)
  • Web » CSS » Editor » Indentation size (definido como 4)

Para HTML:

  • Web » HTML » Editor » Indent using spaces (selecione)
  • Web » HTML » Editor » Indentation size (definido como 4)

Para XML:

  • XML » Arquivos XML » Editor » Indent using spaces (selecione)
  • XML » Arquivos XML » Editor » Indentation size (definido como 4)

Para Javascript:

  • Javascript » Preferências » Estilo do código » Formatador » Editar » Indentation (escolha" apenas espaços ")
  • Renomeie o perfil de configurações do formatador para salvá-lo

Para Java:

  • Java » Preferências » Estilo do código » Formatador » Editar » Indentation (escolha" apenas espaços ")
  • Renomeie o perfil de configurações do formatador para salvá-lo
Patrick Fisher
fonte
Não vejo opções da Web ou Javascript na raiz das Preferências (embora eu tenha uma Perspectiva da Web disponível) e desejo definir guias como espaços para apenas arquivos html, css e javascript. Estou no Helios Eclipse para Java Developers, alguma ideia de como posso obter essa opção?
9118 danny
Essas configurações são o que vejo no Eclipse PDT (Ferramentas de Desenvolvimento PHP). O Eclipse PDT é desenvolvido no Eclipse WTP (Web Tools Platform), que inclui JavaScript Development Tools (JSDT) e Edição de origem de vários formatos da web. Provavelmente é isso que você está perdendo.
Patrick Fisher
+1 para o material Java que é absolutamente necessário porque suas configurações padrão substituem as configurações gerais do editor de texto.
Giulio Piancastelli
para C, Código Style -> Formatter -> Edit -> Recuo -> Configurações Gerais -> Política Tab
Andrew Cooke
1
Obrigado! Isso funciona bem em Marte. É decepcionante que as opções do Editor de texto existam e não façam nada!
paiego
37

Da mudança de guias para espaços no eclipse :

Janela » Preferências » Java » Estilo de código » Formatador » Editar » Indentation (escolha "Somente espaços")

Brian Deacon
fonte
1
para XML, xml -> arquivos xml -> editor, selecione recuo usando espaços, tamanho de recuo 2. #
Junchen Liu
26

Para CDT :

  • Vá para Janela / Preferência » C / C ++ » Estilo de código » Formatador » Novo
  • Crie um novo porque o perfil interno não pode ser alterado
  • MyProfile (escolha um nome para o perfil)
  • Recuo » Tab Policy (escolha apenas espaços)
Antonio Leite
fonte
23

Apenas uma dica rápida para as pessoas que tropeçam nesse fio; há mais um local em que essa configuração também pode ser definida no seu projeto!

O Eclipse suporta configurações específicas do projeto, e alguns projetos usarão suas próprias configurações de guias / espaços não gerenciados, que não aparecerão em nenhum lugar, exceto nas propriedades atuais do projeto.

Isso pode ser gerenciado através de:

  • Clique com o botão direito do mouse no projeto atual no Package Explorer
  • Propriedades » Estilo de Código Java
  • Vire fora todas as opções específicas do projeto

Isso geralmente será apenas um problema se você importar o código de outra pessoa para o seu Eclipse.

Nick Chadwick
fonte
19

Para o Editor padrão:

Janela » Preferências » Editores » Editores de texto »Insert spaces for tabs

insira a descrição da imagem aqui

Para editor Java

Janela » Preferências » Java » Estilo de código » Formatador » Editar » Recuo » Tab policy " Somente espaços "

insira a descrição da imagem aqui

Sumit Singh
fonte
9

Quando enfrentei esse problema, eu tinha "use spaces for tabs" definido como verdadeiro em todos os lugares que eu encontrava, e ainda assim eu estava recebendo abas. Acabou sendo porque as guias foram usadas em outras partes do arquivo e ele estava tentando fazer um recuo inteligente ou algo frustrante.

Foi resolvido selecionando todo o conteúdo do arquivo e pressionando, em um mac command+shift+f,. Isso aplica a formatação fornecida a um arquivo. Eu não conheço a mesma combinação de teclas no Windows, mas tente. Nesse ponto, começo a obter o comportamento esperado.

user1978019
fonte
Para uma solução mais modular para este problema, o usuário também pode fazer uma Find / Replace para \t(fazer expressões certeza regulares estão habilitados) e substituir com a quantidade desejada de caracteres de espaço
jlewkovich
A chave para formatar arquivos no Windows é bastante semelhante - Ctrl+Shift+F.
A.Alessio 18/03
5

IDE do Eclipse para desenvolvedores de C / C ++, versão: Helios Service Release 2

Você precisa criar um novo perfil pressionando o botão Novo dentro de "Janela-> Preferências-> Estilo do Código"

Vá para a guia Indentação e selecione "Política da guia = Somente espaço"


IDE Eclipse para desenvolvedores de C / C ++, versão: Kepler Service Release 1

Siga o caminho abaixo para criar um novo perfil: "Janela> Preferências> C / C ++> Estilo de código> Formatador"

Vá para a guia Indentação e selecione "Política da guia = Somente espaço"

Khokhar
fonte
5

Certifique-se de verificar o formatador java, pois ele substitui a configuração "inserir espaços para guias" . Vamos para:

Java->Code Style"->Formatter->Edit->Identation

Nota: você precisará criar um formato personalizado para poder salvar sua configuração.

ricardo rivaldo
fonte
5

Achei a solução desse problema muito simples e que funciona sempre. É alterar o arquivo de configuração do eclipse.

Por exemplo (altere o tamanho do recuo HTML):


  1. org.eclipse.wst.html.core.prefsArquivo encontrado que deve estar emyour_workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/
  2. Adicionar / Alterar para linha no arquivo:
indentationChar=space

indentationSize=4
Michał Orliński
fonte
1
No Ubuntu 14.04.03 LTS e eclipse 4.5, não consigo alterar o tamanho da identificação, sempre bloqueado e não alterável. Isso resolveu meu problema.
TekTimmy 01/09/2015
5

Vá para Janela -> Preferências e digite tab como o texto de pesquisa (que exibirá uma caixa de diálogo como abaixo):

insira a descrição da imagem aqui

Vá para as seções destacadas para alterar a política da guia. Para as configurações do editor , é principalmente recuar usando espaços (também mostrado acima).

Para as configurações do Formatador , é necessário editar o perfil ativo e atualizar a política da guia (disponível em ` Recuo -> Configurações gerais :

insira a descrição da imagem aqui

Saikat
fonte
3

Janela-> Preferências-> Java-> Estilo do Código-> Formatador-> Editar-> Recuo = "Somente Espaços"

Santosh
fonte
3

No Eclipse, vá para Janela » Preferências e procure por Formatador .

Você verá vários links em negrito, clique em cada link em negrito e defina-o como em use spacesvez de tabs.

No link do formatador java, você deve editar o perfil e selecionar a política da guia, spaces onlyna guia recuo

Sandeep
fonte
2

Não perca a política de guias para os dois * Apenas espaços * Use espaços para recuar linhas quebradas

Eu verifiquei apenas a última coisa e deixei a caixa de combinação como guias apenas, que continuava falhando no CheckStyle .. FYI, estou falando de Preferências> Java> Formatador> Editar ...

Chester
fonte
2

No formato eclipse xml:

Para a guia:

<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="tab"/>

Para espaço:

<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="space"/>
dillip pattnaik
fonte
0
  • Clique em Janela »Preferências
  • Expanda Java »Estilo de código
  • Clique em Formatador
  • clique novo
  • Selecione o nome do perfil
  • Clique OK
  • Clique no botão Editar
  • Clique na guia Recuo
  • Em Configurações gerais, defina a política da guia como: apenas espaços
  • Clique OK.
Sam
fonte
0

Considere também usar um arquivo .editorconfig: https://marketplace.eclipse.org/content/editorconfig-eclipse . Alguém que não esteja usando o Eclipse também pode se beneficiar disso, na pior das hipóteses, pode servir como uma diretriz. NOTA: Não entrarei nas guias versus guerras espaciais, mas utilizarei os espaços FTW :-)

Christophe Roussy
fonte
0

Como um aumento para as outras respostas, no Mac OS X, o menu "Preferências" está no Eclipse, não em Window (diferente das distribuições do Windows / Linux Eclipse). Todo o resto ainda é o mesmo que apontado por outras respostas além deste ponto.

IE: Java Formatter disponível em:

Eclipse >      | # Not Window!
Preferences >  |
Java >         |
Code Style >   |
Formatter      |

A partir daqui, edite o formatador e a política da guia pode ser definida em "Recuo".

Ironcache
fonte
0

No eclipse mars (EE) no Mac OS X, a única maneira de encontrar isso nas preferências era abrir a caixa de diálogo Preferências e digite Formatter, depois selecione Java-> Code Style-> Formatter.

Java-> Code Style não tem acesso ao Formatador!

paiego
fonte
0

E não se esqueça do editor ANT

Por algum motivo, o Ant Editor não aparece nos resultados da pesquisa 'tab'ou 'spaces'pode ser perdido.

Em Windows > Preferências

  • Ant » Editor » Formatador » Tab size: (definido como 4)
  • Ant » Editor » Formatador » Use tab character instead of spaces (desmarque)
usuário linux shonky
fonte
0

Você pode definitivamente usar o arquivo XML para configurar o formatador com o estilo de codificação. O arquivo do formatador ajuda você a ter o mesmo estilo de codificação e diretrizes entre os membros da sua equipe.

A adição dessas variáveis ​​de configuração abaixo teria a tab= 2 spacese seria convertida em espaço, mesmo que você provavelmente use Tabtecla abreviada ao codificar usando o Eclipse .

<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="2"/>
<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="space"/>    
<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="yes"/>

melhor,

Quoc Truong
fonte