Ich habe eine Textdatei. Mir wurde gesagt, ich soll es UTF8 machen. Wie kann ich das mit Vim machen?
Ich habe eine Textdatei. Mir wurde gesagt, ich soll es UTF8 machen. Wie kann ich das mit Vim machen?
Antworten:
Wenn Sie eine als latin1 codierte Datei bearbeiten, werden Sie feststellen, dass die 'Dateicodierung' für diesen Puffer auf latin1 festgelegt ist. Daher müssen Sie die Dateikodierung manuell einstellen, bevor Sie die Datei speichern.
:set fileencoding=utf8
:w myfilename
Beachten Sie auch, dass UTF8-Dateien häufig mit einem Byte Order Mark (BOM) beginnen, das Endianness anzeigt. Die Stückliste ist optional, wird jedoch von einigen Programmen ausschließlich zur Ermittlung der Dateicodierung verwendet. Unter bestimmten Umständen schreibt Vim die Stückliste, manchmal jedoch nicht. Gehen Sie folgendermaßen vor, um die Stückliste explizit festzulegen:
:set bomb
Für weitere Informationen :help mbyte-options
und :help utf8
und :help bomb
.
set fileencoding=utf-8
erneut im Voraus haben. Vim bemerkt die Stückliste nicht einmal, wenn Sie ihr gesagt haben, sie soll eine schreiben (und sie schreibt sie tatsächlich). Damit utf-8 funktioniert, benötigen Sie dies oder set encoding=utf-8
Ihre Starteinstellungen. Zumindest ist das die Geschichte auf meinem System.
:w ++enc=utf-8 %
um die Datei in utf-8-Codierung auf die Festplatte zu schreiben.
fileencoding
, der Wert einmal :w ++enc=utf-8
gültig ist, aber beim nächsten Ausführen :w
der Wert von 'fileencoding'
verwendet wird und wenn Sie ihn nicht geändert haben (explizit während der Bearbeitung oder durch erneutes Laden der Datei, in der Hoffnung das 'fencs'
entsprechend eingestellt ist und die tatsächliche Kodierung ist gut erkannt wird ), wird die alte Codierung kommen.
fileencoding
ist auch eine gültige Antwort auf die Frage, die IMO nicht dazu führt, schlechte Gewohnheiten anzunehmen. Aber OK, das ist wohl nur eine Frage der Stimmung.