Existe uma maneira de fazer o código de recuo do Emacs usando apenas guias globalmente e não espaços. Eu sei do comando tabify. Eu preferiria o recuo automatizado para usar guias em vez de uma mistura de guias e espaços como a configuração padrão.
Bem, para recuar com guias, você deve garantir que indent-tabs-mode
seja t
(qual é o valor padrão). Mas, para obter apenas guias, você precisa ajustar o modo que está fazendo o recuo, de modo que cada linha seja recuada por um múltiplo do seu tab-width
(padrão 8). Por exemplo, no modo C, você pode tentar definir c-basic-offset
8.
Ou você pode reduzir o tab-width
valor para um valor menor, para que o Emacs não precise usar espaços para atingir cada nível de indentação. Mas se você fizer isso, todo mundo que precisar trabalhar no seu código (e usar as paradas de tabulação padrão de 8 caracteres) ficará irritado.
Peço que você reconsidere. Pessoalmente, acho irritante trabalhar com código recuado com guias, especialmente se elas não parecem ser 8 guias de espaço. (O pior é o código em que algumas linhas usam espaços, algumas linhas usam guias e claramente não são 8 guias de espaço.) Faça um favor a todos nós e apenas (setq indent-tabs-mode nil)
.
O Emacs vem com vários estilos predefinidos para indentação C, ou você pode escrever o seu próprio se nenhum atender às suas necessidades. Entre os estilos padrão , parece que você está procurando
linux
(o estilo usado na fonte do kernel do Linux), que possui recuos de 8 colunas e usa caracteres de tabulação de largura 8.Você pode fazer dessas configurações o estilo padrão para C colocando-o em
.emacs
:Entretanto, certifique-se de não usar essas configurações ao colaborar com outras pessoas com preferências diferentes. Em particular, usar guias fará de você um inimigo. Se um arquivo específico deve ser mantido em um estilo específico, você pode usar variáveis de arquivo para garantir que todos que editam o arquivo no Emacs usem as mesmas configurações:
Se você tiver um projeto inteiro com arquivos C recuados da mesma forma, use variáveis de diretório em vez de poluir todos os arquivos. Crie um arquivo chamado
.dir-locals.el
com conteúdo como o seguinte:fonte
As abas me incomodam, mas eu tive que descobrir como fazer o emacs usar apenas abas para recuar para que eu pudesse trabalhar no código de outra pessoa. Aqui está o que funcionou para mim:
Notei que antes de mexer em qualquer coisa, quando eu pressionava a tecla tab, ela era recuada automaticamente por 2 colunas. Definir "tab-width" para coincidir com o deslocamento de 2 colunas permitiu ao emacs usar guias ao fazer a formatação automática. Eu estava trabalhando no modo nxml, mas acho que isso deve funcionar para qualquer modo.
fonte