Laut Vim und Python lautet die Codierung ANSI_X3.4-1968

8

In Vim wird der folgende Befehl (mit Python 3.4.3) ausgegeben ANSI_X3.4-1968:

:!python -c "import sys; print(sys.stdout.encoding)"

Ich möchte jedoch überall UTF-8 .

In habe .vimrcich set encoding=utf-8und mein Gebietsschema ist richtig eingestellt nb_NO.UTF-8.

UTF-8 funktioniert im Allgemeinen einwandfrei. Das einzige Problem ist, wenn Befehle mit :!in Vim ausgeführt werden.

Wie kann ich den obigen Befehl in Vim so ausführen, dass die Ausgabe wird UTF-8?

Alexander
quelle
5
!PYTHONIOENCODING=utf-8 python -c "import sys; print(sys.stdout.encoding)" macht den Job für mich, aber ich bin sicher, es gibt einen besseren Weg
iruvar
Vielen Dank! Einstellung PYTHONIOENCODINGauf utf-8funktioniert. Wie unglaublich eigenartig, dass dies nicht überall die Standardeinstellung ist.
Alexander
2
@Alexander Siehe bugs.python.org/issue13643, warum dies nicht die Standardeinstellung ist.
ivan_pozdeev
@iruvar, wenn Sie Ihren Kommentar als Antwort schreiben möchten, werde ich ihn als akzeptierte Antwort markieren.
Alexander

Antworten:

0

In Python oder einer anderen Skriptsprache steht in der ersten Zeile eine Shebang-Zeile wie:

#!/usr/bin/env python

Anschließend können Sie Ihre Codierung in Zeile 2 angeben, z.

# -*- coding: utf-8 -*-

Natürlich funktioniert die zweite Zeile nur mit Python.

Persischer Golf
quelle