Desativa completamente o recuo automático do Emacs para o modo JavaScript

5

Eu tentei desativar o recuo automático no Emacs em JavaScript por três horas e não encontrei uma solução (boa).

Minha versão do Emacs é 23.3.1 (i486-pc-linux-gnu, GTK + Versão 2.24.3), pelo menos diz isso. É um pacote padrão do Debian Linux (Wheezy), o GUI.

Eu encontrei recuo automático de emacs javascript (e outros), mas não queria instalar outro modo apenas para remover a indentação automática (e não há garantia de que funcionaria com ele), o modo fundamental também desabilita o realce de sintaxe, que eu quero manter, Cc Cl não faz nada, definir javascript-auto-indent-flag to nil não faz nada.

O que eu quero exatamente: insira uma guia se e somente se eu pressionar a tecla TAB. A parte "if" funciona, mas a parte "somente se" não o faz. Eu me pergunto por que é tão difícil?

    
por GodsBoss 04.07.2011 / 22:36

1 resposta

1

No modo Javascript do Emacs, o caractere } está ligado à função js-insert-and-indent . Você pode vinculá-lo apenas para inserir a si mesmo colocando esse código no arquivo de inicialização .emacs :

(defun my-js-mode-hook ()
  "My personal Javascript mode hook."
  (local-set-key (kbd "TAB") 'tab-to-tab-stop)
  (local-set-key (kbd "RET") '(lambda () (interactive) (newline 1)))
  (local-set-key (kbd "SPC") 'self-insert)
  (local-set-key (kbd "}") 'self-insert))

(add-hook 'js-mode-hook 'my-js-mode-hook)

e reiniciando o Emacs. Se você encontrar outros personagens como esse, poderá adicionar mais chamadas a local-set-key em sua função hook, cada uma com um caractere diferente passado para a função kbd .

    
por 09.05.2012 / 22:48