Jawaban:
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 encodingdan :help fileencodingdi 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 chardetaplikasi, yang dapat dijalankan dari dalam VIM seperti:
:!chardet %
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 chardetkadang-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 chardetadalah 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 membuat chardetberpikir bahwa file tersebut ISO-8859-2dengan kepercayaan 0,72, sedangkan menambahkan frase yang sedikit lebih panjang שלום, עולם!memberi UTF-8 dengan skor kepercayaan 0,99. Dalam kedua kasus, set fileencoding?menunjukkan UTF-8bukan karena file pada disk adalah UTF-8, tetapi karena VIM dikonfigurasi untuk menggunakan UTF-8 secara internal.
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:
:e ++enc=<encoding>
dimana encodingbisacp850, ISO-8859-1, UTF-8, ...
Anda dapat menggunakan file yourfilenameuntuk menemukan penyandian atau chardetect(disediakan oleh python-chardetatau uchardetbergantung pada distribusi Linux Anda) seperti yang disarankan oleh dotancohen.