Was ist der Unterschied zwischen diesen beiden Befehlen?
set encoding=utf-8
set fileencoding=utf-8
Muss ich beide einstellen, wenn ich utf-8 verwenden möchte?
Muss ich auch die Dateikodierung mit set
oder einstellen setglobal
?
Was ist der Unterschied zwischen diesen beiden Befehlen?
set encoding=utf-8
set fileencoding=utf-8
Muss ich beide einstellen, wenn ich utf-8 verwenden möchte?
Muss ich auch die Dateikodierung mit set
oder einstellen setglobal
?
Antworten:
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
.
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).
vim -c "set encoding=utf-8" file.ext
.
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