Pengaturan fileencoding menunjukkan penyandian buffer saat ini:
:set fileencoding
fileencoding=utf8
Sebenarnya tidak ada cara umum untuk menentukan pengodean file plaintext, karena informasi itu tidak disimpan dalam file itu sendiri - kecuali File UTF-8 di mana Anda memiliki BOM yang disebut yang menunjukkan Pengodean. Inilah sebabnya mengapa file xml dan html memiliki metatag charset.
Anda dapat menerapkan pengkodean tertentu dengan pengaturan 'pengodean'. Lihat :help encoding
dan :help fileencoding
di Vim untuk bagaimana editor menangani pengaturan ini. Anda juga dapat menambahkan beberapa pengaturan fileencoding ke vimrc Anda agar vim mencoba mendeteksi berdasarkan yang terdaftar.
Perhatikan bahwa penyandian file tidak secara eksplisit dinyatakan di mana pun dalam file. Dengan demikian, VIM dan aplikasi lain harus menebak pada pengkodean. Cara kanonik melakukan ini adalah dengan
chardet
aplikasi, yang dapat dijalankan dari dalam VIM seperti:Jawaban yang diberikan oleh jtimberman menunjukkan kepada Anda pengkodean buffer saat ini yang mungkin bukan pengkodean yang sama dengan file pada disk. Dengan demikian, Anda akan melihat bahwa
chardet
kadang-kadang akan menunjukkan pengkodean yang berbeda dari VIM, terutama jika Anda memiliki VIM yang dikonfigurasi untuk selalu menggunakan pengkodean tertentu (yaitu UTF-8).Yang menyenangkan tentang itu
chardet
adalah memberikan skor kepercayaan untuk tebakannya, sedangkan VIM bisa (dan sering) salah menebak menebak pengkodean jika tidak banyak karakter di atas \ x7F (ASCII 127). Misalnya, menambahkan satuא
ke file panjang kode PHP membuatchardet
berpikir bahwa file tersebutISO-8859-2
dengan kepercayaan 0,72, sedangkan menambahkan frase yang sedikit lebih panjangשלום, עולם!
memberi UTF-8 dengan skor kepercayaan 0,99. Dalam kedua kasus,set fileencoding?
menunjukkanUTF-8
bukan karena file pada disk adalah UTF-8, tetapi karena VIM dikonfigurasi untuk menggunakan UTF-8 secara internal.sumber
chardet <file>
. Tetap saja, saran yang bagus.Saya menemukan bahwa: https://vim.fandom.com/wiki/Reloading_a_file_using_a_different_encoding
Anda dapat memuat ulang file menggunakan penyandian berbeda jika Vim tidak dapat mendeteksi penyandian yang benar:
dimana
encoding
bisacp850, ISO-8859-1, UTF-8, ...
Anda dapat menggunakan
file yourfilename
untuk menemukan penyandian atauchardetect
(disediakan olehpython-chardet
atauuchardet
bergantung pada distribusi Linux Anda) seperti yang disarankan oleh dotancohen.sumber