2012-03-01 11 views
3

私はEmacs + Python 2.7.1 +エンコーディングに問題があります。 PEP 0263によると、Pythonはemacsと同じソースコードの宣言を使用します。私は、次のエンコーディングタグと私のPythonソースコードのスクリプトを起動したときPython、Emacs and Encoding

は全く問題ありません:

#!/usr/bin/python 
# -*- mode=python; encoding:us-ascii-unix -*- 

#!/usr/bin/python 
# -*- mode=python; encoding:us-ascii -*- 

しかし、私は、そのようなのように私のエンコーディングにモードを終了する行を追加するとき

Emacsはまだ私のエンコーディング情報を受け付けていますが、スクリプトを実行するときにPythonから次のエラーが出ます:

Emacsに私が使いたい行の終わりを伝える方法があるのですが、同時にPythonにソースファイルのエンコーディングについて教えてもらえますか?唯一のEmacsによって解析されるインタプリタによってのみ解析され1、および1:(1)US-ASCIIは、Python 2のデフォルトであることを

#!/usr/bin/python 
# coding: us-ascii 

print "Hello World"  

# Local Variables: 
# mode: python 
# coding: us-ascii-unix 
# End: 

答えて

3

次の2つのブロックを書くことができます。バツ; (2)Emacsは通常、行末の慣習を自動的に決定することができます。あなたは何も宣言することなく一緒に行くことができるかもしれません。

+0

あなたの偉大な答えをありがとう。なぜ私がこれを望んでいたかについてのいくつかの発言:ASCII以外の文字でPythonに問題があったので、私はEmacsにus-ascii-unixだけを使用させました。このようにして、私はPythonがこのエンコーディング定義のクールな機能を持っていることを知りました(そして、Pythonが-unixサフィックスを扱うことができないことを知りたい人もいました)。 – EPSG31468