Desativando o modo de indentação elétrica apenas para um modo (modo látex)

11

Não gosto da maneira como o modo recuo elétrico funciona no modo látex. Em qualquer outro lugar (pelo menos em qualquer lugar que eu uso), é ótimo.

Como posso desativar permanentemente o modo de indentação elétrica apenas para o modo de látex, mas mantê-lo em qualquer outro lugar?

Eu estou supondo que é um hack lisp de uma linha no meu arquivo de configuração, ou algo assim, mas eu sou horrível no lisp, então não consigo descobrir.

Toby Muhlhofer
fonte

Respostas:

8

O comando que você precisa é electric-indent-local-mode. Você pode usar isso para desligar-indent-modo elétrico em qualquer tampão, chamando-o manualmente: M-x electric-indent-local-mode. É uma alternância, portanto, chamá-lo novamente no mesmo buffer o ativa novamente.

Para fazer isso automaticamente a partir do seu arquivo init, você precisa configurar um gancho. Primeiro, defina o gancho:

(defun remove-electric-indent-mode ()
  (electric-indent-local-mode -1))

Em seguida, adicione-o aos ganchos de modo apropriado. Para desativar o modo recuo elétrico para o modo LaTeX fornecido pelo AUCTex, use o seguinte:

(add-hook 'LaTeX-mode-hook 'remove-electric-indent-mode)

Para o modo tex padrão, use:

(add-hook 'tex-mode-hook 'remove-electric-indent-mode)

O mesmo padrão é válido para qualquer outro modo que você deseja desativar o recuo elétrico.

Para obter mais detalhes sobre ganchos de modo, consulte o nó manual do Emacs [(emacs) Hooks][1]. Você pode chegar lá no Emacs via C-h i r m Hooks <enter>: C-hpara obter ajuda, iinformações, rler o manual, o mitem de menu e Hooksescolher o item de menu. (ou você pode seguir o link acima para ver a versão html).

Tyler
fonte
Você não precisa definir uma função extra: (add-hook 'LaTeX-mode-hook (lambda () (electric-indent-local-mode -1)))basta.
Emil Jeřábek
É verdade, mas se você definir uma função, poderá reutilizá-la em vários ganchos diferentes sem duplicar o código. Também é mais fácil remover uma função definida do que uma função anônima. Isso pode ser útil na depuração
Tyler