我有開頭的Python腳本:emacs的節能Python代碼與#前不斷地問 - * - 編碼:ASCII - * -
#!/usr/bin/env python
# -*- coding: ASCII -*-
和保存之前,它總是分裂我的窗口,並要求:
警告(mule):對於當前緩衝區/文件,使用:編碼標記指定無效的編碼系統「ASCII」 。 強烈建議在寫入文件之前修復它。
我需要說是的,它有一種方法來禁用它?對不起,但我沒有在谷歌運氣。
加布裏埃爾
我有開頭的Python腳本:emacs的節能Python代碼與#前不斷地問 - * - 編碼:ASCII - * -
#!/usr/bin/env python
# -*- coding: ASCII -*-
和保存之前,它總是分裂我的窗口,並要求:
警告(mule):對於當前緩衝區/文件,使用:編碼標記指定無效的編碼系統「ASCII」 。 強烈建議在寫入文件之前修復它。
我需要說是的,它有一種方法來禁用它?對不起,但我沒有在谷歌運氣。
加布裏埃爾
Python的增強建議(PEP)263,Defining Python Source Code Encodings,討論了一些定義源碼編碼的方法。兩個特殊點是與此有關:
沒有編碼評論,Python的解析器將承擔ASCII
所以你不要在你的文件需要這個的。不過,如果你想更明確一些文件編碼:
要定義源代碼的編碼,一個神奇的評論必須放到了源文件既可以作爲文件中第一或第二線,如:
# coding=<encoding name>
(注意=
可由:
代替)。因此,您可以使用# coding: ascii
而不是更詳細的# -*- coding: ASCII -*-
,如this答案所示。這似乎讓emacs保持高興。
「沒有編碼註釋,Python的解析器將假定爲ASCII」 - 如果你使用的是Python 2.x.如果你想要ascii源代碼,並且你正在使用python 3.x,那麼你確實需要它。 –
不涉及改變腳本是告訴Emacs的什麼ASCII
意味着作爲編碼系統中的解決方案。 (默認情況下,Emacs的稱之爲US-ASCII
代替。)添加到您的.emacs
文件:
(define-coding-system-alias 'ascii 'us-ascii)
然後Emacs的應該能夠理解# -*- coding: ASCII -*-
。
來自[PEP 263](http://www.python.org/dev/peps/pep-0263/)「沒有編碼註釋,Python的解析器將採用ASCII」。所以你根本不需要這個文件。 – Chris
另外,從這個[答](http://stackoverflow.com/a/2387315/623518)你可以使用'#coding:ascii'而不是更詳細的'# - * - coding:ASCII - * - '。這也在PEP 263中提到。 – Chris
@Chris:爲什麼不把它放在答案中? – Thomas