Definir recuo da tabulação no Emacs

2

Eu tenho uma coisa muito simples que quero fazer no Emacs. Eu quero configurá-lo para que quando eu pressionar a tecla TAB, ele insere dois espaços. Só isso. É tudo que peço. Eu tentei fazer isso por um par de anos agora, e simplesmente não há como fazer isso. Em cada tipo de arquivo, ele explode de uma maneira diferente. Arquivo HTML? Escolha aleatória entre obter quatro espaços ou tabulação para o recuo da linha anterior. Arquivo Python? Apenas quatro espaços e eu vou ignorar qualquer configuração que você tenha. Ele também parece parar de funcionar aleatoriamente dependendo da fase da lua quando estava trabalhando anteriormente.

No meu .emacs:

(setq indent-tabs-mode nil)
(setq tab-width 2)

Isso deve funcionar, certo? Não, não, não. Parece que o emacs tem um "modo de arquivo" de fada mágica para cada extensão que substitui completamente o que eu digo. Então eu tenho que encontrar essa configuração mágica de fadas e substituí-la para cada tipo de arquivo? O que posso fazer para que essa coisa simples funcione? Halp.

    
por Magnus 14.10.2012 / 23:34

1 resposta

5

Cada idioma tem sua própria convenção de recuo, portanto, não é muito útil ter o mesmo efeito da tecla Tab de fácil acesso o tempo todo. É por isso que muitos principais modos ¹ substituem a vinculação da chave .

Para substituir a configuração de um determinado modo, vincule-o em seu mapa de teclado.

(defun insert-two-spaces (&optional count)
  (interactive "*p")
  (insert (make-string (* 2 count) ?\ )))
(add-hook 'python-mode-hook '(local-set-key "\t" 'insert-two-spaces))

Para substituir a configuração em todos os lugares, você pode definir um sempre ativado modo menor . Consulte o manual do Elisp para saber como para definir um modo menor.

(define-minor-mode magnus-minor-mode
  "Override the binding of the TAB key."
  :keymap '(([?\t] . insert-two-spaces))
  :global t)
(magnus-minor-mode 1)

¹ O que você chama de "modo de arquivo mágico de fadas" é um modo principal. Se você não gosta de um editor que faz coisas automaticamente, sugiro nano .

    
por 14.10.2012 / 23:49

Tags