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 № 1Você 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.