Beachten Sie, dass es sicherer ist, die Codierung in Ihrem LOCALE festzulegen, als sie in Vim zu erzwingen, falls Sie eine Nicht-Unicode-Datei bearbeiten. Sie erhalten das gleiche Ergebnis wie standardmäßig LOCALE, und Sie werden keine fremden Zeichen durcheinander bringen, wenn Sie diese treffen.
Timss
Antworten:
89
TL; DR
Im ersten Fall mit set encoding=utf-8ändern Sie die Ausgabecodierung, die im Terminal angezeigt wird .
Im zweiten Fall mit set fileencoding=utf-8, werden Sie die Ausgabe der Datei kodiert ändern, wird geschrieben .
Wie von @Dennis angegeben, können Sie beide in Ihrem ~ / .vimrc festlegen, wenn Sie immer arbeiten möchten utf-8.
" encodingLegt fest, wie vim Zeichen intern darstellen soll . Utf-8 ist für die meisten Unicode-Varianten erforderlich."
" fileencodinglegt die Codierung für eine bestimmte Datei fest (lokal zu puffern) ;: setglobal legt den Standardwert fest. Es kann auch ein leerer Wert verwendet werden: Der Standardwert ist" Codierung ". Oder Sie möchten möglicherweise eine der UCS-Codierungen festlegen. Je nachdem, welche Zeichenmischung Sie verwenden, kann dieselbe Festplattendatei größer oder kleiner werden. Außerdem ist utf-8 in IIUC immer Big-Endian (High-Bit zuerst), während UCS Big-Endian oder Little-Endian sein können Wenn Sie es verwenden, müssen Sie wahrscheinlich "Bombe" setzen (siehe unten).
Entschuldigung, ich verstehe nicht. Was macht die Dateicodierung genauer?
Kiraly Zoltan
25
Im ersten Fall ändern Sie die Ausgabecodierung, die im Terminal angezeigt wird. Im zweiten Fall ändern Sie die Ausgabecodierung der geschriebenen Datei.
Adrien Lacroix
1
+1 Für eine kurze und süße Antwort, anstatt nur die offizielle Dokumentation zu wiederholen! :)
425nesp
Bei Bedarf ad-hoc direkt über die Kommandozeile vim -c "set encoding=utf-8" file.ext.
Hans Ginzel
87
set encoding=utf-8 " The encoding displayed.
set fileencoding=utf-8 " The encoding written to file.
Sie können auch beides in Ihrem festlegen, ~/.vimrcwenn Sie immer mit utf-8 arbeiten möchten.
Sie können die Variable 'fileencodings' in Ihrer .vimrc festlegen.
Dies ist eine Liste von Zeichencodierungen, die beim Bearbeiten einer vorhandenen Datei berücksichtigt werden. Wenn eine Datei gelesen wird, versucht Vim, die zuerst erwähnte Zeichenkodierung zu verwenden. Wenn ein Fehler erkannt wird, wird der nächste in der Liste versucht. Wenn eine funktionierende Codierung gefunden wird, wird "Dateicodierung" darauf gesetzt. Wenn alle fehlschlagen, wird 'fileencoding' auf eine leere Zeichenfolge gesetzt, was bedeutet, dass der Wert von 'encoding' verwendet wird.
Sehen :help filencodings
Wenn Sie häufig mit z. B. cp1252 arbeiten, können Sie es dort hinzufügen:
set fileencodings=ucs-bom,utf-8,cp1252,default,latin9
Antworten:
TL; DR
Wie von @Dennis angegeben, können Sie beide in Ihrem ~ / .vimrc festlegen, wenn Sie immer arbeiten möchten
utf-8
.Mehr Details
Aus dem Wiki von VIM über die Arbeit mit Unicode
"
encoding
Legt fest, wie vim Zeichen intern darstellen soll . Utf-8 ist für die meisten Unicode-Varianten erforderlich.""
fileencoding
legt die Codierung für eine bestimmte Datei fest (lokal zu puffern) ;: setglobal legt den Standardwert fest. Es kann auch ein leerer Wert verwendet werden: Der Standardwert ist" Codierung ". Oder Sie möchten möglicherweise eine der UCS-Codierungen festlegen. Je nachdem, welche Zeichenmischung Sie verwenden, kann dieselbe Festplattendatei größer oder kleiner werden. Außerdem ist utf-8 in IIUC immer Big-Endian (High-Bit zuerst), während UCS Big-Endian oder Little-Endian sein können Wenn Sie es verwenden, müssen Sie wahrscheinlich "Bombe" setzen (siehe unten).quelle
vim -c "set encoding=utf-8" file.ext
.Sie können auch beides in Ihrem festlegen,
~/.vimrc
wenn Sie immer mit utf-8 arbeiten möchten.quelle
Sie können die Variable 'fileencodings' in Ihrer .vimrc festlegen.
Sehen
:help filencodings
Wenn Sie häufig mit z. B. cp1252 arbeiten, können Sie es dort hinzufügen:
quelle