【问题标题】:How to define Emacs major mode over #!#如何定义Emacs主模式!
【发布时间】:2014-02-26 20:38:07
【问题描述】:
我已经定义了一个我想用于所有 .py 文件的 python 模式。其中:
(add-to-list 'auto-mode-alist '("\\.py\\'" . my-python-mode))
在所有以 .py 结尾的文件中正确使用我的模式,除非该文件以 a 开头
#! /usr/bin/env python
我正在处理的几个文件。如何让 my-python-mode 优先于 emacs 默认的 python 模式?
【问题讨论】:
标签:
python
emacs24
major-mode
【解决方案1】:
根据 emacs 手册,您还需要更新interpreter-mode-alist
有入口
("python" . python-mode)
这里也做add-to-list
其次,如果没有指定主模式的文件变量,Emacs
检查文件内容是否以“#!”开头。如果是这样,那
表示该文件可以作为可执行的 shell 命令,
它通过运行在文件第一行命名的解释器来工作
(文件的其余部分用作解释器的输入)。所以,
Emacs 尝试使用解释器名称来选择模式。为了
例如,以“#!/usr/bin/perl”开头的文件在 Perl 中打开
模式。变量interpreter-mode-alist指定对应关系
在解释程序名称和主要模式之间。