如何在文件中编写应在emacs中打开此特定文件的模式?例如,假设我有一个名为“foo”的脚本。在foo的主体中,我想提出类似的内容:
# sh-mode
# rest of my script here...
到emacs时,在emacs中打开“foo”时应该使用“sh-mode”。注意,我不想通过.emacs的文件扩展名来执行此操作。这里的要点是“foo”的文件名没有说明它是什么类型的文件 - 我希望从文件本身中指定它。有没有办法做到这一点?
感谢。
答案 0 :(得分:23)
答案 1 :(得分:7)
另请注意,如果第一行是hash-bang注释,Emacs也会正确识别文件的类型,例如
#!/bin/sh
答案 2 :(得分:4)
您可以指定emacs在任何文件的第一行或第二行中使用的文件局部变量(以及更多)。
因此,对于您的情况,您可以使用:
# -*- mode: sh; -*-
享受!
答案 3 :(得分:2)
另见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.")