Vim'de kodlamayı ve dosya kodlamasını utf-8 olarak ayarlayın


104

Bu iki komut arasındaki fark nedir?

  • set encoding=utf-8
  • set fileencoding=utf-8

Utf-8'i kullanmak istediğimde ikisini de ayarlamam gerekir mi?

Ayrıca, dosya kodlamasını setveya ile ayarlamam gerekir setglobalmi?


Unicode olmayan bir dosyayı düzenlemeniz durumunda, kodlamayı Vim'de zorlamak yerine LOCALE'nizde ayarlamanın daha güvenli olduğunu unutmayın. Varsayılan olarak LOCALE için aynı sonucu alırsınız ve karşılanırsa hiçbir yabancı karakteri karıştırmazsınız.
timss

Yanıtlar:


96

TL; DR

İlk durumda , terminalde gösterilenset encoding=utf-8 çıktı kodlamasını değiştireceksiniz .

İkinci durumda set fileencoding=utf-8, yazılan dosyanın çıktı kodlamasını değiştireceksiniz .

@Dennis'in belirttiği gibi, her zaman çalışmak istiyorsanız her ikisini de ~ / .vimrc dosyanızda ayarlayabilirsiniz utf-8.

Daha fazla detay

Gönderen unicode çalışma hakkında VIM'in wiki

" vim'in karakterleri dahili olarakencoding nasıl temsil edeceğini belirler . Utf-8, Unicode'un çoğu çeşidi için gereklidir."

" belirli bir dosyafileencoding için kodlamayı ayarlar (yerelden arabelleğe);: setglobal varsayılan değeri ayarlar. Boş bir değer de kullanılabilir: varsayılan olarak 'kodlama' ile aynıdır. Veya ucs kodlamalarından birini ayarlamak isteyebilirsiniz, Aynı disk dosyasını, belirli karakter karışımınıza bağlı olarak daha büyük veya daha küçük hale getirebilir.Ayrıca, IIUC, utf-8 her zaman büyük endian'dır (önce yüksek bit), ucs ise büyük endian veya küçük endian olabilir, öyleyse kullanın, muhtemelen 'bomba' ayarlamanız gerekecektir (aşağıya bakın). "


3
Üzgünüm anlamıyorum Dosya kodlaması tam olarak ne yapar?
Kiraly Zoltan

26
İlk durumda, terminalde gösterilen çıktı kodlamasını değiştireceksiniz. İkinci durumda, yazılan dosyanın çıktı kodlamasını değiştireceksiniz.
Adrien Lacroix

1
+1 Resmi belgeleri tekrarlamak yerine kısa ve tatlı bir cevap için! :)
425nesp

Doğrudan komut satırından gerektiğinde geçici vim -c "set encoding=utf-8" file.ext.
Hans Ginzel

89
set encoding=utf-8  " The encoding displayed.
set fileencoding=utf-8  " The encoding written to file.

Her ~/.vimrczaman utf-8 ile çalışmak istiyorsanız her ikisini de ayarlayabilirsiniz .


0

.Vimrc dosyanızda 'fileencodings' değişkenini ayarlayabilirsiniz.

Bu, mevcut bir dosyayı düzenlemeye başlarken dikkate alınan karakter kodlamalarının bir listesidir. Bir dosya okunduğunda, Vim ilk bahsedilen karakter kodlamasını kullanmaya çalışır. Bir hata tespit edilirse, listedeki bir sonraki denenir. Çalışan bir kodlama bulunduğunda, 'dosya kodlama' buna ayarlanır. Tümü başarısız olursa, 'dosya kodlama' boş bir dizeye ayarlanır, bu da 'kodlama' değerinin kullanıldığı anlamına gelir.

Görmek :help filencodings

Sık sık örneğin cp1252 ile çalışıyorsanız, oraya ekleyebilirsiniz:

set fileencodings=ucs-bom,utf-8,cp1252,default,latin9
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.