VIM-Editor: Dateierweiterung und Zeilenenden

3593
Der Hochstapler

Beim Speichern von Dateien sind dies meine Standardeinstellungen in TextMate (Mac OS X):

Dateicodierung: UTF8 (empfohlen) Zeilenende: LF (empfohlen)

Wie kann ich festlegen, dass VIM Dateien mit derselben Dateikodierung und Zeilenende wie TextMate speichert? Ich wäre für jeden Vorschlag dankbar. Vielen Dank!

0

2 Antworten auf die Frage

5
Alexander Shukaev
" Stick with the UTF-8 encoding. if has('multi_byte') " Encoding used for the terminal. if empty(&termencoding) let &termencoding = &encoding endif  " Encoding used in buffers, registers, strings in expressions, "viminfo" " file, etc. set encoding=utf-8  " Encoding used for writing files. setglobal fileencoding=utf-8 endif  " Use both Unix and DOS file formats, but favor the Unix one for new files. set fileformats=unix,dos 

HINWEIS: Der Vorteil der letzten Zeile besteht darin, dass beide Formate im Vim-Puffer korrekt angezeigt werden. Zum Beispiel, wenn Sie entfernen würde dosaus fileformats, dann werden alle dosDateien, die Sie in Vim ab sofort öffnen würde würde werden laden ^MSymbole an Zeilenenden. Das ^Mist nichts anderes, aber \rdas würde Vim in diesem Fall nicht richtig interpretieren. Es wird daher dringend empfohlen, fileformatswie oben gezeigt aufzubewahren. Keine Sorge, alle neuen Dateien, die Sie erstellen, verwenden unixstandardmäßig das Format (wie im Kommentar oben angegeben).

Wenn Sie auf eine Datei mit dosFormat stoßen und diese in konvertieren möchten, geben Sie unixFolgendes ein:

:set ff=unix 
Danke, aber was macht diese WENN-Bedingung? ist es nötig? vor 11 Jahren 0
Es wird geprüft, ob Vim mit der ** Multibyte-Funktion ** kompiliert wurde (einschließlich Unicode-Unterstützung und mehr). Sie können `: version` eingeben und nach` + multi_byte` suchen. Wenn es dort vorhanden ist, bedeutet dies, dass Vim mit der Funktion ** Multibyte ** kompiliert wurde, und diese Prüfung wird sicherlich bestanden. Wenn Sie dort jedoch -multi_byte sehen, bedeutet dies das Gegenteil (Unicode wird nicht unterstützt). Dementsprechend wird diese Prüfung nicht bestanden, was wiederum verhindert, dass Vim beim Laden Ihres `.vimrc` abstürzt / bellt . Alexander Shukaev vor 11 Jahren 0
Ja, ich habe diese Option (+ multi_byte). Ist es empfehlenswert, sowohl die Kodierung als auch die Dateikodierung auf utf-8 zu setzen? Ich verstehe den Unterschied nicht wirklich. Wenn ich eine Datei erstelle, welche wird verwendet? Und welche, wenn ich es rette. Vielen Dank! vor 11 Jahren 0
Kurze Kommentare geben Ihnen bereits einige Informationen zum eigentlichen Zweck von "encoding" und "fileencoding". Ich habe nicht die Absicht, die Vim-Dokumentation hier neu zu schreiben. `: h coding` und`: h fileencoding` sind deine Freunde. Alexander Shukaev vor 11 Jahren 0
0
Ingo Karkat

Die Zeilenenden werden durch die 'fileformat'(tatsächlich verwendeten) und 'fileformats'(was erkannt wird) Optionen bestimmt. Wenn da unixdrin ist, geht es dir gut. das repräsentiert <LF>. Sie können :helpfür jedes dieser Elemente mehr lesen.

Ihr Wert sollte auf 'encoding'gesetzt sein utf-8und dieser Wert sollte auch in erscheinen 'fileencodings'(standardmäßig nicht).

Sie können die Einstellungen mit überprüfen (beachten Sie das Ende ?nach dem Optionsnamen):

:set encoding? 

Um dauerhafte Änderungen vorzunehmen, geben Sie die :set ...Befehle in Ihr ein ~/.vimrc.

Beachten Sie, dass Sie die Einstellungen auch immer überschreiben können, z

:edit ++ff=unix ++enc=utf-8 myfile