emacs在使用#-*-编码保存python代码之前不断询问:ASCII-*-
我有一个python脚本,它的开头是:emacs在使用#-*-编码保存python代码之前不断询问:ASCII-*-,python,emacs,character-encoding,Python,Emacs,Character Encoding,我有一个python脚本,它的开头是: #!/usr/bin/env python # -*- coding: ASCII -*- 在保存之前,它总是拆分我的窗口,并询问: 警告(mule):指定的编码系统“ASCII”无效 对于当前缓冲区/文件,使用:coding标记。 强烈建议在写入文件之前对其进行修复 我需要说是的,有没有办法禁用它?很抱歉问你,但我在谷歌上运气不好 GabrielPython增强计划(PEP)263讨论了定义源代码编码的多种方法。这里有两个特别的要点: 如果没有编码
#!/usr/bin/env python
# -*- coding: ASCII -*-
在保存之前,它总是拆分我的窗口,并询问:
警告(mule):指定的编码系统“ASCII”无效
对于当前缓冲区/文件,使用:coding标记。
强烈建议在写入文件之前对其进行修复
我需要说是的,有没有办法禁用它?很抱歉问你,但我在谷歌上运气不好
GabrielPython增强计划(PEP)263讨论了定义源代码编码的多种方法。这里有两个特别的要点:
-
如果没有编码注释,Python的解析器将采用ASCII 所以你根本不需要在你的文件里写这个。不过,如果您确实希望明确说明文件编码: -
要定义源代码编码,必须在源文件中放置魔术注释,作为文件的第一行或第二行,例如:
(请注意,#编码=
可以替换为=
)。因此,您可以使用:
,而不是答案中建议的更详细的#编码:ascii
。这似乎让emacs感到高兴#-*-编码:ascii-*-
- 一个不涉及更改脚本的解决方案是告诉Emacs作为编码系统,ASCII的含义是什么。(默认情况下,Emacs将其称为
US-ASCII
)。将其添加到.Emacs
文件中:
(define-coding-system-alias 'ascii 'us-ascii)
然后Emacs应该能够从“没有编码注释,Python的解析器将采用ASCII”理解
#-*-编码:ASCII-*-
。因此,您的文件中根本不需要这个。此外,您可以使用#coding:ascii
而不是更详细的#-*-编码:ascii-*-
。PEP 263中也提到了这一点。@Chris:为什么不把它写在回答中?@Thomas谢谢你的建议,我已经这么做了。“如果你使用的是Python 2.x,没有编码注释,Python的解析器将采用ASCII”。如果您想要ascii源代码并且使用的是Python3.x,那么您确实需要它。
(define-coding-system-alias 'ascii 'us-ascii)