获取emacs识别python3 shebang

时间:2019-05-24 20:16:56

标签: python-3.x emacs shebang

我正在使用emacs编辑一些Python 3代码,但是当shebang为#! /usr/bin/env python3时,它不提供语法高亮显示。仅使用#! /usr/bin/env python突出显示即可正常工作。如何使emacs将python3 shebang识别为Python文件,并提供适当的语法突出显示?

编辑:我正在使用版本22.1.1,无法对其进行更改。

2 个答案:

答案 0 :(得分:1)

检查auto-mode-interpreter-regexp的值,默认情况下该值应与shebang条目正确匹配。然后,确保您的interpreter-mode-alist中有一个条目,如

("python[0-9.]*" . python-mode)

如果不是由于某种原因,请将其添加到您的init文件中,例如。

(cl-pushnew '("python[0-9.]*" . python-mode) interpreter-mode-alist :test #'equal)

编辑

由于您的emacs很古老,请尝试

(push '("python[0-9.]*" . python-mode) interpreter-mode-alist)

答案 1 :(得分:1)

我遇到了你在这里遇到的同样问题,而 Rorschach 的另一个答案对我不起作用,也是因为我有一个无法升级的旧版本 (24.3) emacs。经过反复试验,这对我有用:

在您的 .emacs 文件中添加以下行:

(push '("python3" . python-mode) interpreter-mode-alist)

旧的 emacs(24.4 之前)不支持使用正则表达式来编辑解释器模式列表,这就是为什么其他答案的建议修复不起作用的原因。

emacs 24.4 的更新日志提到了对正则表达式的新支持:“interpreter-mode-alist 中元素的汽车(原文如此)现在被视为正则表达式而不是文字字符串。”