emacs在保存python代码前经常询问# - * - 编码:ASCII - * -

时间:2012-05-18 11:34:13

标签: python emacs character-encoding

我有一个以:

开头的python脚本
#!/usr/bin/env python
# -*- coding: ASCII -*-

在保存之前,它总是会分割我的窗口,并询问:

警告(骡子):指定了无效的编码系统`ASCII' 当前缓冲区/文件由:coding标签。 强烈建议在写入文件之前修复它。

我需要说是,有没有办法禁用它?很抱歉,我在谷歌上没有运气。

加布里埃尔

2 个答案:

答案 0 :(得分:7)

不涉及更改脚本的解决方案是告诉Emacs ASCII作为编码系统的含义。 (默认情况下,Emacs会将其称为US-ASCII。)将其添加到.emacs文件中:

(define-coding-system-alias 'ascii 'us-ascii)

然后Emacs应该能够理解# -*- coding: ASCII -*-

答案 1 :(得分:3)

Python增强提议(PEP)263,Defining Python Source Code Encodings讨论了许多定义源代码编码的方法。这里有两个特别的要点:

  •   

    如果没有编码注释,Python的解析器将采用ASCII

    所以你的文件根本不需要这个。不过,如果你想明确说明文件编码:

  •   

    要定义源代码编码,必须将魔术注释作为文件中的第一行或第二行放入源文件中,例如:

    # coding=<encoding name>
    

    (请注意,=可以替换为:)。因此,# coding: ascii回答建议您使用# -*- coding: ASCII -*-代替更详细的{{1}}。这似乎让emacs感到高兴。