Perhatikan bahwa lebih aman untuk mengatur pengkodean di LOCALE Anda daripada memaksanya di Vim, jika Anda akan mengedit file non-unicode. Anda akan mendapatkan hasil yang sama karena default ke LOCALE dan Anda tidak akan mengacaukan karakter asing jika bertemu.
timss
Jawaban:
90
TL; DR
Dalam kasus pertama dengan set encoding=utf-8, Anda akan mengubah pengkodean keluaran yang ditampilkan di terminal.
Dalam kasus kedua dengan set fileencoding=utf-8, Anda akan mengubah pengkodean keluaran dari file yang ditulis .
Seperti yang dinyatakan oleh @Dennis, Anda dapat mengatur keduanya di ~ / .vimrc Anda jika Anda selalu ingin bekerja utf-8.
" encodingmengatur bagaimana vim akan merepresentasikan karakter secara internal . Utf-8 diperlukan untuk sebagian besar rasa Unicode."
" fileencodingmenyetel pengkodean untuk file tertentu (lokal ke buffer);: setglobal menyetel nilai default. Nilai kosong juga dapat digunakan: defaultnya sama dengan 'encoding'. Atau Anda mungkin ingin menyetel salah satu pengkodean ucs, Itu mungkin membuat file disk yang sama lebih besar atau lebih kecil tergantung pada campuran karakter tertentu Anda. Selain itu, IIUC, utf-8 selalu big-endian (bit tinggi dulu) sementara ucs bisa big-endian atau little-endian, jadi jika Anda menggunakannya, Anda mungkin perlu menyetel 'bom "(lihat di bawah)."
Maaf saya tidak mengerti Apa tepatnya yang dilakukan fileencoding?
Kiraly Zoltan
25
Dalam kasus pertama, Anda akan mengubah encoding keluaran yang ditampilkan di terminal. Dalam kasus kedua, Anda akan mengubah pengkodean keluaran dari file yang ditulis.
Adrien Lacroix
1
+1 Untuk jawaban singkat dan manis, bukan hanya mengulang dokumentasi resmi! :)
425nesp
Jika diperlukan ad-hoc langsung dari baris perintah vim -c "set encoding=utf-8" file.ext.
Hans Ginzel
87
set encoding=utf-8 " The encoding displayed.
set fileencoding=utf-8 " The encoding written to file.
Anda juga dapat mengatur keduanya ~/.vimrcjika Anda selalu ingin bekerja dengan utf-8.
Anda dapat mengatur variabel 'fileencodings' di .vimrc Anda.
Ini adalah daftar pengkodean karakter yang dipertimbangkan saat mulai mengedit file yang ada. Ketika sebuah file dibaca, Vim mencoba menggunakan pengkodean karakter yang disebutkan pertama. Jika kesalahan terdeteksi, kesalahan berikutnya dalam daftar akan dicoba. Ketika encoding yang berhasil ditemukan, 'fileencoding' diatur untuk itu. Jika semuanya gagal, 'fileencoding' disetel ke string kosong, yang berarti nilai 'encoding' digunakan.
Lihat :help filencodings
Jika Anda sering bekerja dengan misalnya cp1252, Anda dapat menambahkannya di sana:
set fileencodings=ucs-bom,utf-8,cp1252,default,latin9
Jawaban:
TL; DR
Seperti yang dinyatakan oleh @Dennis, Anda dapat mengatur keduanya di ~ / .vimrc Anda jika Anda selalu ingin bekerja
utf-8
.Keterangan lebih lanjut
Dari wiki VIM tentang bekerja dengan unicode
"
encoding
mengatur bagaimana vim akan merepresentasikan karakter secara internal . Utf-8 diperlukan untuk sebagian besar rasa Unicode.""
fileencoding
menyetel pengkodean untuk file tertentu (lokal ke buffer);: setglobal menyetel nilai default. Nilai kosong juga dapat digunakan: defaultnya sama dengan 'encoding'. Atau Anda mungkin ingin menyetel salah satu pengkodean ucs, Itu mungkin membuat file disk yang sama lebih besar atau lebih kecil tergantung pada campuran karakter tertentu Anda. Selain itu, IIUC, utf-8 selalu big-endian (bit tinggi dulu) sementara ucs bisa big-endian atau little-endian, jadi jika Anda menggunakannya, Anda mungkin perlu menyetel 'bom "(lihat di bawah)."sumber
vim -c "set encoding=utf-8" file.ext
.Anda juga dapat mengatur keduanya
~/.vimrc
jika Anda selalu ingin bekerja dengan utf-8.sumber
Anda dapat mengatur variabel 'fileencodings' di .vimrc Anda.
Lihat
:help filencodings
Jika Anda sering bekerja dengan misalnya cp1252, Anda dapat menambahkannya di sana:
sumber