Vim verwendet beim Aufrufen von Befehlen im Terminal eine falsche Kodierung

Vim verwendet beim Aufrufen von Befehlen im Terminal eine falsche Kodierung

Ich verwende Vim (genauer gesagt GVim) unter Windows 8 und möchte mit dem üblichen kompilieren :!g++ %, aber der Name des Verzeichnisses, in dem meine Datei gespeichert ist, enthält Akzente, und Vim scheint damit Probleme zu haben.

Hier ist das Ergebnis des Aufrufs :!g++ "%"(Vim scheint weder Anführungszeichen um den aktuellen Dateipfad hinzuzufügen noch Leerzeichen zu maskieren):

Beim Aufrufen des Befehls wird die falsche Kodierung verwendet

Der Übersichtlichkeit halber lautet der vollständige Pfad zur angezeigten DateiE:\Programación\Problemas algoritmos\(ns) ACM-ICPC Live Archive 2088 - Entropy.cpp

Wenn ich Vim (anstelle von GVim) verwende, scheinen die Akzente richtig verarbeitet zu werden, aber es wird trotzdem ein und \davor eingefügt , so dass der aufgerufene Befehl wie folgt aussieht:()

g++ "E:\Programación\Problemas algoritmos\\(ns\) ACM-ICPC Live Archive 2088 - Entropy.cpp"

Ausführen dieser Befehle

:set encoding?
:set termencoding?

In Vim zeigt

encoding=latin1
termencoding=cp850

Aber in GVim zeigt

encoding=latin1
termencoding=

Wie könnte ich es lösen?

BEARBEITEN:

Ich habe es bereits mit den folgenden Zeilen in _vimrc versucht:

set encoding=latin1
set termencoding=cp850

Das eigentliche Problem scheint nicht bei den Akzenten, sondern bei den Klammern zu liegen. Beispielsweise funktioniert es mit, áéíóú.cppaber nicht mit(a).cpp

Antwort1

Ich denke, die richtige Lösung wäre, Ihre Termencoding in Ihrer .vimrc festzulegen. Wenn Sie das jedoch wirklich nicht zum Laufen bringen, können Sie das Problem möglicherweise von der anderen Seite aus umgehen. Sie können die Kodierung Ihrer cmd.exe-Shell mit dem folgenden chcpBefehl festlegen. Dies könnte beispielsweise funktionieren, aber ich habe es nicht getestet:

:!chcp cp1252 & g++ "%"

Codepage 1252 ist eine Obermenge von ISO-8859-1 (latin1), die Ihr Vim anscheinend zur Kodierung verwendet.

verwandte Informationen