Bir metin dosyam var. UTF8 yapmam söylendi. Bunu Vim ile nasıl yapabilirim?
Bir metin dosyam var. UTF8 yapmam söylendi. Bunu Vim ile nasıl yapabilirim?
Yanıtlar:
Latin1 olarak kodlanmış bir dosyayı düzenliyorsanız, bu arabellek için 'dosya kodlamasının' latin1 olarak ayarlandığını göreceksiniz. Bu nedenle, dosyayı kaydetmeden önce dosya kodlamasını manuel olarak ayarlamanız gerekecektir.
:set fileencoding=utf8
:w myfilename
Ayrıca, UTF8 dosyalarının genellikle sonu gösteren bir Bayt Sırası İşareti (BOM) ile başladığını unutmayın. BOM isteğe bağlıdır ancak bazı programlar dosya kodlamasını belirlemek için özel olarak kullanabilirsiniz. Belirli koşullar altında Vim ürün reçetesini yazacak, ancak bazen yazmayacaktır. Malzeme Listesini açıkça ayarlamak için şunu yapın:
:set bomb
Daha fazla bilgi için :help mbyte-options
ve :help utf8
ve :help bomb
.
set fileencoding=utf-8
yeniden ön plana çıkmanız gerekir . Vim, ona bir tane yazmasını söyleseniz bile BOM'u fark etmez (ve gerçekten de yazar). Utf-8'in çalışması için buna veya set encoding=utf-8
başlangıç ayarlarınıza ihtiyacınız var . En azından benim sistemimdeki hikaye bu.
:w ++enc=utf-8 %
Dosyayı utf-8 kodlamasında diske yazmak için.
fileencoding
, :w ++enc=utf-8
bir kez geçerli olacaktır, ancak bir dahaki sefer çalıştırdığınızda :w
değerinin 'fileencoding'
kullanılması ve değiştirmediyseniz (açıkça düzenlerken veya dosyayı yeniden yükleyerek, umarak) bu 'fencs'
uygun şekilde ayarlanır ve gerçek kodlama iyi tespit edilirse, eski kodlama geri gelecektir.
fileencoding
de soruya geçerli bir cevaptır, bu da IMO'nun kötü alışkanlıklar edinmesine yol açmaz. Ama tamam, sanırım bu sadece bir ruh hali meselesi.