Tornar o modo Web sempre recuar com espaços

10

Estou usando o modo web do emacs , e as guias nos arquivos JS parecem estar agindo estranhamente.

Eu tenho tabulação definida para recuar 2 espaços, mas quando o recuo atinge 8 espaços, o modo da Web os transforma em uma guia e continua a tabular 2 espaços até chegar a outros 8 e converte isso em outra guia, etc.

Posso impedir que isso aconteça e dizer ao emacs / web-mode para apenas recuar espaços?

EDITAR:

Aqui está um exemplo curto de função aninhada:

(function() {
  function() {
    function() {
      function() {
    function() {
      // Indenting problem.
    }
      }
    }
  }
})()

Obviamente, está aparecendo bem no Emacs, mas você pode ver o problema do recuo aqui.

Vou notar aqui que isso também ocorre no modo javascript.

dieuwe
fonte
11
Isso é específico para o modo web? Ou isso acontece em algum lugar?
Malabarba
Isso está acontecendo apenas no modo Web, tudo o resto fica bem com espaços indefinidamente.
dieuwe
Desculpe, o modo javascript também faz a mesma coisa. Mas são apenas esses dois.
dieuwe
Qual javascript-modevocê está usando, o embutido? Além disso, isso acontece quando recuar html web-mode?
dgtized
Por favor, poste o conteúdo do seu arquivo init. O Emacs usa uma guia para 8 espaços por padrão, então deve haver algo no seu arquivo init para desativá-lo na maioria dos modos.
Gilles 'SO- stop be evil'

Respostas:

10

Em geral, se você deseja que o recuo use apenas espaços, eu recomendaria a personalização:

(setq-default indent-tabs-mode nil)

Isso força o recuo a usar espaços e sem tabulações. Não tenho certeza se web-modeusa os métodos regulares para indentação, portanto, pode não respeitar isso.

Você pode dar um exemplo de arquivo para demonstrar?

dgtized
fonte
3
Adicione um exemplo à pergunta. Adicionar (setq indent-tabs-mode nil)não parece mudar nada em ambos web-modee javascript-mode.
dieuwe
3
Eu acho que você deve usar setq-defaultporque indent-tabs-modeé local de buffer.
nperson325681
@progo Ok, isso funcionou. Muito obrigado.
dieuwe
11
É possível recuar apenas com guias? Tentei configurações diferentes, mas recua apenas com guias / espaços mistos.
DFR
11
@Dfr Você deve adicionar (setq-default indent-tabs-mode t)no seu.emacs
fxbois
3

Por favor, tente este código no seu arquivo de configuração do emacs para forçar o recuo no modo web. I refere-lo a partir da home-page-mode web.

(require 'web-mode)
(defun my-web-mode-hook ()
  "Hooks for Web mode."
  (setq web-mode-markup-indent-offset 2)
)
(add-hook 'web-mode-hook  'my-web-mode-hook)
YulongNiu
fonte
Isso também funcionaria? (add-hook 'web-mode-hook (lambda () (setq web-mode-markup-indent-offset 2)))
Andrew Lamarra