Como alterar o modo de indentação no Atom?

194

Ainda não consegui descobrir isso. O Atom parece usar espaços como o modo de indentação padrão. Eu prefiro ter guias em vez disso. O Sublime Text incorporou uma funcionalidade para alternar e converter recuo.

Alguém descobriu como mudar o modo de indentação do Atom?

Algumas capturas de tela do Sublime Text:

Menu de recuo de texto sublime aberto Menu de recuo de texto sublime

Jon Koops
fonte
4
para converter o recuo, você pode localizar e substituir uma expressão regular e usar \ t para localizar ou inserir guias.
Mer10z_tech 23/05
1
existe uma maneira fácil de alterar o código atual para 4 do modo 2 recuo?
Charlie Parker
1
Uso o plug-in de detecção automática de indentação, que não apenas configura automaticamente a tecla tab para fazer o que já está no arquivo, mas exibe o modo de indentação na parte inferior esquerda.
while1fork
@CharlieParker Você um movimento com as preferências, clique na guia editor e conjunto de recuo para 4.
Craig
Nota: O Atom, por padrão, mostra e atravessa espaços como guias! Veja a resposta da tparker aqui: stackoverflow.com/a/46333677/1599699
Andrew

Respostas:

218

Consulte Guias flexíveis e Comprimento da guia em Configurações> Configurações do editor .

Para alternar os modos de indentação rapidamente, você pode usar Ctrl-Shift-P e procurar o Editor: Alternar guias flexíveis .

blom
fonte
1
Como o @zamber disse, se recuar automaticamente uma página e ela não captar as configurações de recuo, abra-a novamente e tente novamente.
Victor S
58
Apenas como uma observação lateral - guias flexíveis são caracteres de espaço como guias, guias rígidas são caracteres de guia. Além disso, se as definições não são repspected, tenteCtrl-Shift-P Editor: Toggle Soft Tabs
ivan-k
2
Gostaria de acrescentar que NENHUMA das soluções deste segmento funcionou para mim, até que eu troquei por uma fonte com espaçamento simples. Depois de trocar por uma fonte com espaçamento simples, tentei cada método e todos eles realmente funcionam. Espero que isso ajude alguém no futuro ...
Native Coder
existe uma maneira fácil de alterar o código atual para 4 do modo 2 recuo?
Charlie Parker
Não vejo nenhum benefício em NÃO usar uma fonte monoespaçada ao codificar, devo admitir.
Frank Bailey
65

Vá para Arquivo -> Configurações

Existem 3 opções diferentes aqui.

  1. Guias suaves
  2. Comprimento da guia
  3. Tipo de guia

Fiz alguns testes e cheguei a estas conclusões sobre o que cada um faz.

Guias suaves - Ativar isso significa que usará espaços por padrão (ou seja, para novos arquivos).

Comprimento da guia - qual a largura do caractere da guia ou quantos espaços são inseridos para uma guia se as guias programáveis ​​estiverem ativadas.

Tipo de guia - determina o modo de indentação a ser usado nos arquivos existentes. Se você configurá-lo para automático, ele usará o recuo existente (tabulações ou espaços). Se você configurá-lo para suave ou rígido, forçará espaços ou tabulações, independentemente do recuo existente. Melhor deixar isso no modo auto.

Nota: Suave = espaços, difícil = tabulação

developerbmw
fonte
Você também pode falar sobre as Atomic Soft Tabs ?
neeh
3
existe uma maneira fácil de alterar o código atual para 4 do modo 2 recuo?
Charlie Parker
1
Obrigado por ajudar a esclarecer alguns dos jargões que o Atom usa para entender esse problema.
MiFiHiBye
23

Adicione isto ao seu ~/.atom/config.cson

editor:
    tabLength: 4
Leif Gruenwoldt
fonte
15

OS X:

  1. Vá para Atom -> prefrencesouCMD + ,

  2. Role para baixo e selecione "Comprimento da guia" que você preferir.

insira a descrição da imagem aqui

Disse Kholov
fonte
11

Você pode tentar acessar "Atom> Preferências> Editor" e definir o comprimento da guia como 4.

insira a descrição da imagem aqui

Isto é para mac. Para o Windows, você terá que encontrar o menu apropriado.

Craig
fonte
7

Adicionando a resposta @Manbroski aqui que funcionou para mim:

experimentar Ctrl-Shift-P Editor: Toggle Soft Tabs

OscarRyz
fonte
6

Tarde para a festa, mas uma maneira limpa de fazer isso por projeto é adicionar um arquivo .editorconfig à raiz do projeto. Evita que você precise alterar as configurações do Atom quando estiver trabalhando em vários projetos simultaneamente.

Este é um exemplo de uma configuração muito básica que estou usando atualmente. Funciona para Atom, ST, etc ...

http://editorconfig.org/

# Automatically add new line to end of all files on save.
[*]
insert_final_newline = true

# 2 space indentation for SASS/CSS
[*.{scss,sass,css}]
indent_style = space
indent_size = 2

# Set all JS to tab => space*2
[js/**.js]
indent_style = space
indent_size = 2
ConorLuddy
fonte
Eu quase joguei o Atom completamente fora até que vi isso. As configurações do config.cson parecem não fazer absolutamente nada pelos arquivos existentes. Obrigado!
killthrush
3

Isso está incorporado no núcleo: veja Settings ⇒ Tab Typee escolha auto:

Quando definido como "auto", o editor detecta automaticamente o tipo de guia com base no conteúdo do buffer (usa o primeiro espaço em branco à esquerda em uma linha sem comentários) ou usa o valor da configuração da guia Soft Tabs se detecção falha.

Você também pode dar uma olhada no pacote de Detecção automática de recuo . Dos documentos:

Detecta automaticamente o recuo dos arquivos abertos. Ele analisa cada arquivo aberto e define as configurações de guias específicas do arquivo (guias rígidas / flexíveis, comprimento da guia) com base no conteúdo do arquivo, em vez de sempre usar os padrões do editor.

Você pode ter o atom configurado para usar 4 espaços para guias, mas abrir um projeto de trilhos com o padrão de 2 espaços. Sem esse pacote, você teria que alterar globalmente as configurações do tabstop ou correr o risco de ter espaçamento inconsistente nos arquivos.

jcuenod
fonte
Se usar 'auto' e isso der errado (no meu caso, é decidido usar espaços quando eu quero guias, nesse arquivo específico) como você (com um menu rápido ou pressionamento de tecla, sem se aprofundar nas configurações) muda de idéia? Eu não acho que a detecção automática falhou, apenas entendeu errado. Não vai digitar uma guia rígida para mim. Eu já procurei e substitui em todos os lugares, mas ainda assim a tecla Tab insere 4 espaços.
Ed Randall
Eu não teria usado search-and-replace, teria usado a paleta de comandos convert spaces to tabs(ou algo assim). Eu acho que isso funcionou para mim no passado.
22417 jcuenod
3

Eu apenas tive o mesmo problema e nenhuma das sugestões acima funcionou. Por fim, tentei desmarcar "Atomic soft tabs" no menu Editor Settings, que funcionou.

tparker
fonte
OH! Isso é o que isso significa! Eu queria saber por que minhas teclas de seta foram saltando sobre os espaços quando não havia qualquer \té no arquivo ...
Andrew
2

Se você estiver usando o Babel, também pode querer atualizar o pacote "Language Babel". Para mim, mesmo tendo o Comprimento da guia definido como 2 nas configurações do meu editor principal, a mesma configuração na configuração do Language Babel estava substituindo-a por 4.

Atom -> Preferences -> Packages -> (Search for Babel) -> Grammar -> Tab Length

Verifique se a gramática apropriada, "Gramática Javascript Babel ES6", "Gramática linguagem-babel-extensão" e "Expressão regular". Você provavelmente deseja atualizar todos eles para serem consistentes.

Mike M
fonte
2

O Controle por Tab fornece um bom controle de maneira semelhante à descrita em sua pergunta.

Também interessante para desenvolvedores de JavaScript é o Comprimento da guia do ESLint para usar a configuração do ESLint.

Ou, se você estiver usando um .editorconfigpara definir regras de recuo específicas do projeto, existe o EditorConfig

Brett Zamir
fonte
1

Se as configurações globais de indentação de tabulação / espaços não atenderem mais às suas necessidades (no IE, você se encontra trabalhando com bases de código herdadas com formatos de indentação variados e precisa alternar rapidamente entre elas, e a detecção automática não está funcionando), tente a guia -control plugin, que duplica a funcionalidade do menu na sua captura de tela.

Ed Halferty
fonte
1

Quando a detecção automática de indentação do Atom errou irremediavelmente e se recusou a me deixar digitar um caractere de tab literal, eu finalmente encontrei a extensão 'Force-Tab' - que me devolveu o controle. Eu queria manter a tecla Shift pressionada para recuar, então configure a tecla Ctrl para inserir uma guia rígida. No meu mapa de teclas eu adicionei:

'atom-text-editor': 'ctrl-tab': 'force-tab:insert-actual-tab'

Ed Randall
fonte
1

Se você estiver usando a versão 1.21.1:

  1. Clique em Packages / Settings View / Open
  2. Selecione "Editor" no painel esquerdo
  3. Role para baixo até ver "Comprimento da guia"
  4. Edite o valor. Eu gosto de configurá-lo para 4.

Agora, basta fechar o painel da guia ativa e pronto.

Caiuby Freitas
fonte
0

Todas as respostas mais populares aqui são ótimas e ativam espaços para guias, mas faltam uma coisa. Como aplicar os espaços em vez de guias ao código existente.

Para fazer isso, basta selecionar todo o código que deseja formatar e, em seguida, vá em Editar-> Linhas-> Recuo automático e ele corrigirá tudo o que foi selecionado.

Como alternativa, você pode simplesmente selecionar todo o código que deseja formatar, usar Ctrl Shift P e procurar recuo automático. Basta clicar nos resultados da pesquisa para corrigir tudo o que foi selecionado.

ajpieri
fonte
0

Alterando a configuração específica do idioma

Alterei as configurações da guia padrão e elas ainda não tiveram impacto quando eu estava editando meus arquivos, que eram arquivos Python. Também não mudou quando modifiquei a configuração "*" em ~ / .atom / config.cson. Eu não tenho uma boa explicação para nenhum deles.

No entanto, quando adicionei o seguinte ao meu config.cson, consegui alterar a guia nos meus arquivos Python para 2 espaços:

'.source.python':
  editor:
    tabLength: 2

Graças a este recurso para a solução: Chave da guia que não respeita o comprimento da guia

MK Hunter
fonte