我正在使用emacs编辑一些Python 3代码,但是当shebang为#! /usr/bin/env python3
时,它不提供语法高亮显示。仅使用#! /usr/bin/env python
突出显示即可正常工作。如何使emacs将python3 shebang识别为Python文件,并提供适当的语法突出显示?
编辑:我正在使用版本22.1.1,无法对其进行更改。
答案 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
中元素的汽车(原文如此)现在被视为正则表达式而不是文字字符串。”