Unicode kann mit Gvim und VIM unter Windows 7 nicht eingegeben werden

11

Ich möchte mit (g) Vim verschiedene Sprachen eingeben. Wenn ich jedoch mithilfe der Sprachleiste (Devanagari- oder Hindi-Zeichen) zu einer anderen Sprache wechsle und etwas eingebe, wird (g) vim angezeigt ??? ??.

Was ich versucht habe:

write ++enc=utf-8 foo.txt  
set fileencoding=utf-8   
set enc=utf-8

Information:

  • GVim-Version: 7.4 und auch sein + multi_byte.
  • Keine Änderungen in der vimrc-Standarddatei.

Ich habe gerade mit (g) vim begonnen.

msinfo
quelle
5
Könnte eine Schriftart sein. Welche Schriftart verwenden Sie?
Muru
1
7 Schriftarten (Konsolen, 2 Kuriere, 2 Lucida, Fixedsys und Terminal) sind in gvim aufgeführt. Ich habe sie alle ausprobiert. Mein System hat zwar auch andere Schriftarten, aber gvim zeigt nur 7 an. Ich folgte auch: stackoverflow.com/questions/3766204/vim-doesnt-support-unicode, aber immer noch kein Glück.
msinfo
3
"Eine andere Sprache" ist ziemlich vage. Welche Sprache? Polieren? Hebräisch? Chinesisch? Klingonisch? Wenn Sie eine dunkle Sprache verwenden, ist es sehr wahrscheinlich, dass keine dieser Schriftarten diese Sprache unterstützt.
Martin Tournoij
1
In meinem Fall versuche ich Malayalam mit GVim 7.4.800 (oder so ungefähr) mit der Ubuntu Mono- Schriftart. Beispieltext finden Sie in der Wikipedia von Malayalam . Unter Linux (Ubuntu und Arch) wird Malayalam mit den auf Ubuntu Mono eingestellten Terminal- und GVim-Schriftarten angezeigt, auch wenn es etwas gequetscht ist. Ich habe die anderen im zweiten Kommentar erwähnten Schriftarten msinfo ausprobiert.
Muru
1
Unter Linux kann gvim die gewünschten Zeichen anzeigen, da Pango Glyphen aus anderen Schriftarten abruft, um alle Zeichen anzeigen zu können. Das ist auch der Grund, warum die Zeichen anders aussehen als der Rest Ihres Textes. Wenn Sie dasselbe in xterm versuchen, werden nicht alle Zeichen angezeigt, da eine einzige Schriftart verwendet wird. Ich vermute, dass unter Windows etwas Ähnliches passiert.
Jamessan

Antworten:

5

Die Standardcodierung scheint zu sein latin1:

:set encoding?
  encoding=latin1

Bei der Eingabe von Zeichen versucht Vim, diese aus dem eingehenden Zeichensatz (wahrscheinlich Unicode) in Latin-1 zu konvertieren. Dies schlägt fehl, da Latin-1 diese Zeichen nicht hat. Daher die Fragezeichen.

Das Öffnen einer vorhandenen Datei (mit dem Editor oder einem anderen Programm gespeichert) sollte zu verstümmeltem Text führen, da Vim jetzt nur versucht, Bytes zu lesen und sie gemäß dem Latin-1-Zeichensatz zu interpretieren und sie nicht in den Latin-1-Satz zu konvertieren.

Sie werden verwenden wollen utf-8oder einige solche:

:set encoding=utf-8

Danach scheint das Malayalam-Skript zu funktionieren.

Beachten Sie, dass dies nicht bereits bestehende Fragezeichen Arbeit machen. Diese werden0x3f bei der Eingabe wirklich in Fragezeichen (Zeichen ) umgewandelt. Es gibt keine Möglichkeit, zurück zu gelangen, was eingegeben wurde. Ich vermute, dass dies die Quelle der Verwirrung dieser Frage ist.

Siehe auch :help 'encoding'.

Als Nebenbemerkung werden nicht unterstützte Glyphen in der Schriftart normalerweise mit einem eindeutigen Glyphen gerendert. Dies variiert je nach Schriftart, ist jedoch normalerweise entweder ein quadratischer Block oder ein anders gestaltetes Fragezeichen. Sie können den Unterschied zwischen einem "echten" Fragezeichen und einem nicht unterstützten Glyphen mit erkennen g8, der den Zeichencode anzeigt.

Martin Tournoij
quelle
1
Ich muss Devanagari- oder Hindi-Zeichen eingeben. Die Codierung war zuvor auf latin1 eingestellt und wurde gemäß Ihrem Vorschlag in utf-8 geändert. Es sind jedoch noch keine Devanagari- oder Hindi-Zeichen sichtbar. Wenn ich diese Felder (wie von VIM gerendert) von VIM in den Browser oder in Notepad ++ kopiere, sehen sie wie Unicode-Zeichen aus. VIM erkennt sie also, kann sie aber nicht anzeigen.
Msinfo
1
@msinfo Welche Vim-Version verwenden Sie? Sie haben 7.4 erwähnt, aber das Patch-Level nicht erwähnt? Ich habe 7.4.1024 von vim.org verwendet .
Martin Tournoij
1
Es scheint nicht gepatcht zu sein, wie ich aus einer Ihrer Antworten herausfinden wollte ;-) auf vi.stackexchange.com/questions/2466/… . Vim --version zeigt keine Patch-Informationen an. Ich habe nach der Installation keine Plugin- oder Patch-Änderungen vorgenommen.
Msinfo
4
@msinfo Vim 7.4 wurde vor fast zweieinhalb Jahren veröffentlicht. Versuchen Sie, die neuere Version zu installieren. Vielleicht ist das alles was benötigt wird?
Martin Tournoij