Yanıtlar:
Dosya kodlama ayarı mevcut tamponun kodlamasını gösterir:
:set fileencoding
fileencoding=utf8
Bir düz metin dosyasının kodlamasını belirlemenin yaygın bir yolu yoktur, çünkü bu bilgiler dosyanın kendisine kaydedilmez - Kodlamayı gösteren BOM adlı UTF-8 Dosyaları hariç. Bu nedenle xml ve html dosyalarının karakter kümesi meta etiketleri vardır.
'Kodlama' ayarıyla belirli bir kodlamayı zorlayabilirsiniz. Bkz :help encoding
ve :help fileencoding
editör bu ayarları nasıl işleyeceğini için Vim. Ayrıca, listelenenleri temel alarak tespit etmeye çalışacak şekilde, vimrc'nize birkaç dosya kodlama ayarı ekleyebilirsiniz.
Dosyaların kodlamasının, bir dosyanın hiçbir yerinde açıkça belirtilmediğini unutmayın . Bu nedenle, VIM ve diğer uygulamalar kodlamada tahmin etmelidir. Bunu yapmanın kurallı yolu, chardet
VIM içinden şu şekilde çalıştırılabilen uygulama iledir:
:!chardet %
Jtimberman tarafından verilen cevap , diskteki dosya ile aynı olmayabilir geçerli arabellek kodlamasını gösterir . Bu nedenle, chardet
bazen, her zaman belirli bir kodlamayı kullanmak için yapılandırılmış VIM'iniz varsa (örneğin UTF-8), VIM'den farklı bir kodlama göstereceğini fark edeceksiniz .
Güzel olan şey chardet
, tahmininde bir güven puanı vermesidir; oysa VIM \ x7F (ASCII 127) 'nin üzerinde çok fazla karakter yoksa kodlama tahmininde yanlış olabilir (ve çoğu zaman). Örneğin, א
uzun bir PHP kod dosyasına bir tane eklemek chardet
, dosyanın ISO-8859-2
0.72 güvende olduğunu düşündürür , biraz daha uzun olan bir ifade eklemek ise שלום, עולם!
UTF-8'e 0.99 güven puanı verir. Her iki durumda da set fileencoding?
gösterdi UTF-8
diskteki dosya UTF-8 olduğu için değil, fakat VIM içten UTF-8 kullanmak üzere yapılandırıldığı için.
chardet <file>
. Yine de, iyi öneri.
Bunu buldum: https://vim.fandom.com/wiki/Reloading_a_file_using_a_different_encoding
Vim doğru kodlamayı tespit edemiyorsa, farklı bir kodlama kullanarak bir dosyayı yeniden yükleyebilirsiniz:
:e ++enc=<encoding>
nerede encoding
olabilircp850, ISO-8859-1, UTF-8, ...
Dotancohen tarafından önerilen file yourfilename
kodlamayı bulmak chardetect
( python-chardet
veya uchardet
Linux dağıtımınıza göre veya bunlara bağlı olarak) bulmak için kullanabilirsiniz .