Mam plik tekstowy. Powiedziano mi, żebym zrobił to w UTF8. Jak mogę to zrobić z Vimem?
Mam plik tekstowy. Powiedziano mi, żebym zrobił to w UTF8. Jak mogę to zrobić z Vimem?
Odpowiedzi:
Jeśli edytujesz plik zakodowany jako latin1, zauważysz, że „fileencoding” dla tego bufora jest ustawione na latin1. Dlatego przed zapisaniem pliku musisz ręcznie ustawić kodowanie pliku.
:set fileencoding=utf8
:w myfilename
Należy również zauważyć, że pliki UTF8 często zaczynają się od znacznika kolejności bajtów (BOM), który wskazuje na koniec. Zestawienie komponentów jest opcjonalne, ale niektóre programy używają go wyłącznie do określenia kodowania pliku. W pewnych warunkach Vim zapisze BOM, ale czasami nie. Aby jawnie ustawić zestawienie komponentów, wykonaj następujące czynności:
:set bomb
Aby uzyskać więcej informacji :help mbyte-optionsi :help utf8i :help bomb.
set fileencoding=utf-8ponownie z przodu. Vim nawet nie zauważa BOM-a, jeśli kazałeś mu je napisać (i rzeczywiście to robi). Aby utf-8 działał, potrzebujesz tego lub set encoding=utf-8w ustawieniach uruchamiania. Tak przynajmniej wygląda mój system.
:w ++enc=utf-8 %
aby zapisać plik w kodowaniu utf-8 na dysk.
fileencoding, to :w ++enc=utf-8jest ważny raz, ale następnym razem, gdy uruchomisz :w, wartość 'fileencoding'zostanie użyta, a jeśli jej nie zmieniłeś (wyraźnie podczas edycji lub przeładowując plik, mając nadzieję które 'fencs'jest odpowiednio ustawione, a rzeczywiste kodowanie jest dobrze wykryte), powróci stare kodowanie.
fileencodingjest również poprawną odpowiedzią na pytanie, które IMO nie prowadzi do przyjęcia złych nawyków. Ale OK, to tylko kwestia nastroju, jak sądzę.