alterar permanentemente o modo de buffer de um arquivo?

7

Pergunta para iniciantes:

No OSX 10.6.8, o Aquamacs possui muitos modos de buffer. Meus arquivos .tex são abertos no modo TeX, mas eu gostaria de abri-los no modo LaTeX. Posso alterar o modo com "Alterar modo de buffer", mas mesmo depois de um "salvar" ou "salvar como", o modo antigo permanece.

Como posso mudar o modo de uma vez por todas? (A pergunta também se refere ao emacs padrão, eu acho).

user5507
fonte
Não existe um "Salvar" ou "Salvar como ..." nos Aquamacs . Apenas para esclarecer, você quer dizer "Salvar Buffer" / "Salvar Buffer Como ..." ou "Salvar Sessão Como ..."?
Greenonline

Respostas:

7

Além da resposta específica de Andrew Swann para arquivos TeX, a maneira mais geral de definir o modo por extensão de arquivo é colocar uma nova entrada (ou adaptar a existente) na auto-mode-alist.

Do manual :

Essa variável contém uma lista de associação de padrões de nome de arquivo (expressões regulares) e comandos de modo principal correspondentes. Geralmente, os padrões de nome de arquivo testam sufixos, como '.el' e '.c', mas esse não precisa ser o caso. Parece um elemento comum do alist (regexp. Mode-function).

Por exemplo,

      (("\\`/tmp/fol/" . text-mode)
       ("\\.texinfo\\'" . texinfo-mode)
       ("\\.texi\\'" . texinfo-mode)
       ("\\.el\\'" . emacs-lisp-mode)
       ("\\.c\\'" . c-mode)
       ("\\.h\\'" . c-mode)
       ...)

Então, normalmente, seria feita uma alteração permanente na lista com algo como:

(add-to-list 'auto-mode-alist '("\\.tex\\'" . latex-mode))

Observe as barras invertidas, que escapam a caracteres especiais.

O alist funciona porque o primeiro valor correspondente na lista será usado. Portanto, você pode adicionar à frente da lista, independentemente do conteúdo original desse tipo de arquivo, e seu novo valor será usado.

Dan
fonte
6

Você pode personalizar a variável tex-default-modepara, por exemplo latex-mode.

Na verdade, esse é o valor padrão tex-mode.el, portanto, você tem uma configuração / personalização variável substituindo-a, talvez definida por aquamacsou você tenha uma instalação antiga do emacs.

Andrew Swann
fonte
3

Você também pode usar variáveis ​​locais do arquivo: coloque %-*- mode: latex -*-como a primeira linha no seu arquivo.

schaueho
fonte