Como usar
- Escolha o recuo em Recuar com e Tamanho do recuo. Escolha a quebra de linha em Fim de linha e a codificação em Conjunto de caracteres.
- Marque as seções por tipo de arquivo de que precisar: Manter espaços no fim das linhas em Markdown, Recuar YAML com dois espaços e Recuar as receitas do Makefile com tabulações.
- Copie o texto em O arquivo .editorconfig, ou baixe-o, e salve-o na pasta de nível mais alto do seu projeto.
- Leia O que significa cada linha para conferir o que cada propriedade faz.
Como o arquivo funciona
Muitos editores e IDEs leem um arquivo .editorconfig e aplicam suas configurações aos arquivos que combinam com cada seção. O cabeçalho de uma seção é um padrão de nome de arquivo entre colchetes, e as propriedades abaixo dele valem para todo arquivo que combine. Uma seção posterior substitui uma anterior para a mesma propriedade. A linha root = true interrompe a busca, então as configurações chegam apenas a esta pasta e às pastas abaixo dela.
- * combina com qualquer sequência de caracteres, exceto a barra.
- ** combina com qualquer sequência de caracteres, inclusive barras.
- {yml,yaml} combina com qualquer um dos dois textos, então *.{yml,yaml} combina com os dois tipos de arquivo.
As seções por tipo de arquivo
- Markdown: dois espaços no fim de uma linha criam uma quebra de linha, então a remoção é desligada para *.md.
- YAML: caracteres de tabulação não são aceitos no recuo, então *.{yml,yaml} recua com espaços, dois para cada nível.
- Makefile: cada linha de receita deve começar com um caractere de tabulação, então Makefile recebe indent_style = tab.
Como escolher os valores
- Espaços são a escolha comum para código. Tabulações servem a uma equipe cujos editores mostram uma tabulação com a mesma largura.
- LF é a quebra de linha usual em projetos no Linux e no macOS e na maioria dos repositórios. CRLF é a quebra de linha dos arquivos de texto do Windows.
- UTF-8 é a codificação padrão. Use UTF-8 com marca de ordem dos bytes só quando alguma ferramenta exigir.
Exemplo resolvido: as escolhas padrão
Com espaços, tamanho de recuo 2, LF, UTF-8, espaços no fim das linhas removidos, quebra de linha final e as três seções por tipo de arquivo, o arquivo tem uma linha root, uma seção para todos os arquivos com seis propriedades, uma propriedade em cada uma das seções de Markdown e Makefile, e duas na seção de YAML. A tabela lista onze linhas de propriedade, e seis delas aparecem aqui.
| Seção | Propriedade | Valor |
|---|---|---|
| Início do arquivo | root | true |
| Todos os arquivos | indent_style | space |
| Todos os arquivos | indent_size | 2 |
| Markdown (.md) | trim_trailing_whitespace | false |
| YAML (.yml, .yaml) | indent_style | space |
| Makefile | indent_style | tab |
Perguntas frequentes
Onde o arquivo .editorconfig deve ficar?
Na pasta de nível mais alto do projeto, ao lado do README. Os editores procuram o arquivo na pasta de cada arquivo e depois em todas as pastas acima, e a busca para no primeiro arquivo que tem root = true.
O arquivo .editorconfig reformata meu código?
Não por si só. Ele diz aos editores e plugins qual recuo, quebra de linha e codificação usar quando editam ou salvam um arquivo. Quem reformata é um formatador ou um linter, e alguns deles leem as mesmas configurações.
Por que a seção de Markdown mantém os espaços no fim das linhas?
Em Markdown, dois espaços no fim de uma linha criam uma quebra de linha. Removê-los juntaria duas linhas em uma, então esta seção desliga a remoção só para arquivos .md.
Por que um Makefile precisa de tabulações?
make lê cada linha de receita depois de um caractere de tabulação, e uma receita que começa com espaços gera erro. Por isso a seção do Makefile define indent_style como tab para arquivos chamados Makefile.
Uma subpasta pode desfazer uma dessas configurações?
Sim, com o valor unset, que remove uma propriedade definida antes. Esta página escreve apenas valores simples, então acrescente essa linha no próprio arquivo .editorconfig da subpasta, se precisar.
O arquivo é enviado para algum servidor?
Não. O arquivo é escrito no seu navegador a partir das escolhas que você faz, e nada do que você escolhe é guardado.
Fontes
- EditorConfig (em inglês): the file format and the supported properties
- EditorConfig specification (em inglês): sections, globs and root
- CommonMark 0.31.2 (em inglês): hard line breaks (two spaces at the end of a line)
- YAML 1.2.2 (em inglês): tab characters must not be used in indentation
- GNU Make manual (em inglês): a recipe line begins with a tab character
Números e texto verificados pela última vez em terça-feira, 10 de novembro de 2026.