/ / Python, Emacs e Codificação - python, emacs, codificação

Python, Emacs e Codificação - python, emacs, codificação

Eu tenho problemas com o Emacs + Python 2.7.1 + Codificação. De acordo com PEP 0263, O Python usa a mesma declaração de codificação de origem que o emacs faz.

Não há nenhum problema quando eu inicio meu script de código-fonte Python com a seguinte tag de codificação:

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

Mas quando eu adiciono um modo de terminação de linha à minha codificação, como em:

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

O Emacs ainda aceita minhas informações de codificação, mas recebo o seguinte erro do Python ao executar meu script:

File "./unicode.py", line 2
SyntaxError: encoding problem: with BOM

Existe uma maneira de dizer ao Emacs sobre a linha que eu quero usar e ao mesmo tempo dizer ao Python sobre a codificação do arquivo de origem?

Respostas:

3 para resposta № 1

Você pode escrever dois blocos: um que é analisado apenas pelo interpretador e outro que é analisado apenas pelo Emacs:

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

print "Hello World"

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

Note que (1) us-ascii é o padrão no Python 2.x; e (2) o Emacs geralmente é capaz de determinar a convenção de término de linha automaticamente; então você pode se dar bem sem declarar nada.