2013-05-12 9 views
66

Was ist der Unterschied zwischen diesen beiden Befehlen? Codierung und Dateicodierung in Vim auf utf-8 setzen

  • set encoding=utf-8
  • set fileencoding=utf-8

Muss ich beide setzen, wenn ich will utf-8 benutzen?

Muss ich auch fileencoding mit set oder setglobal setzen?

+0

Beachten Sie, dass es sicherer ist, die Codierung in Ihrem LOCALE festzulegen, anstatt sie in Vim zu erzwingen, falls Sie eine Nicht-Unicode-Datei bearbeiten. Sie erhalten das gleiche Ergebnis wie bei LOCALE und Sie werden keine fremden Zeichen durcheinander bringen, wenn sie erfüllt werden. – timss

Antwort

56

TL; DR

Im ersten Fall mit set encoding=utf-8, werden Sie die Ausgabecodierung ändern, die im Terminal dargestellt ist. Im zweiten Fall mit set fileencoding=utf-8 ändern Sie die Ausgabecodierung der Datei, die geschrieben ist.

Wie @ Dennis gesagt, Sie können sie setzen sowohl in Ihrem ~/.vimrc wenn man immer in utf-8 arbeiten wollen.

Mehr Details

Von den wiki of VIM about working with unicode

"encoding legt fest, wie vim Zeichen darstellen soll intern. UTF-8 ist erforderlich für die meisten Varianten von Unicode."

"fileencoding die Codierung für eine bestimmte Datei setzt (lokal zu puffern): setglobal setzt den Standardwert Ein leerer Wert auch verwendet werden können: Der Standardwert ist gleich wie‚encoding‘Oder Sie können.. möchte eine der ucs-Kodierungen setzen, Es könnte die gleiche Datei größer oder kleiner machen, abhängig von Ihrer speziellen Mischung von Charakteren. Auch IIUC, utf-8 ist immer big-endian (high bit first), während ucs groß sein können. endian oder little-endian, also, wenn Sie es verwenden, müssen Sie wahrscheinlich ‚Bombe setzen‚(siehe unten).‘

+1

Entschuldigung, ich verstehe nicht. Was macht Dateicodierung genauer? –

+22

Im ersten Fall ändern Sie die Ausgabecodierung, die im Terminal angezeigt wird. Im zweiten Fall ändern Sie die Ausgabecodierung der Datei, die geschrieben wird. –

+0

+1 Für kurze und süße Antwort, anstatt nur offizielle Dokumentation zu wiederholen! :) – 425nesp

70
set encoding=utf-8 " The encoding displayed. 
set fileencoding=utf-8 " The encoding written to file. 

können Sie setze auch beide in deine ~/.vimrc, wenn du immer mit utf-8 arbeiten willst.

Verwandte Themen