2010-03-07 8 views
9

¿cómo puedo escribir, como un comentario dentro de un archivo, el modo con el que este archivo en particular debe abrirse en emacs? por ejemplo, supongamos que tengo un script llamado "foo". En el cuerpo de foo, me gustaría poner algo como:declarando el modo un archivo emacs debe abrirse en

# sh-mode 
# rest of my script here... 

a Emacs que "sh-mode" debe utilizarse cuando "foo" se abre en emacs. Tenga en cuenta que no quiero hacer esto por la extensión de archivo de .emacs. El punto aquí es que el nombre de archivo de "foo" no dice qué tipo de archivo es, quiero que se especifique desde el archivo en sí. ¿Hay alguna forma de hacer esto?

Gracias.

Respuesta

20

Yo suelo añadir algo como:

# -*- mode: sh -*- 

en la parte superior del archivo. Vea el emacs documentation para más información.

+0

también se puede añadir variables ### locales: ### modo: látex ### Fin: ' al final del archivo –

2

Ver también magic-mode-alist.

magic-mode-alist is a variable defined in `files.el'. 

Documentation: 
Alist of buffer beginnings vs. corresponding major mode functions. 
Each element looks like (REGEXP . FUNCTION) or (MATCH-FUNCTION . FUNCTION). 
After visiting a file, if REGEXP matches the text at the beginning of the 
buffer, or calling MATCH-FUNCTION returns non-nil, `normal-mode' will 
call FUNCTION rather than allowing `auto-mode-alist' to decide the buffer's 
major mode. 

If FUNCTION is nil, then it is not called. (That is a way of saying 
"allow `auto-mode-alist' to decide for these files.") 
7

Tenga en cuenta también que Emacs también identificará correctamente el tipo de archivo si la primera línea es un comentario de hash-bang, p.

#!/bin/sh