Apa perbedaan antara kedua perintah ini?
set encoding=utf-8
set fileencoding=utf-8
Apakah saya perlu menyetel keduanya ketika saya ingin menggunakan utf-8?
Juga, apakah saya perlu menyetel pengkodean file dengan set
atau setglobal
?
Apa perbedaan antara kedua perintah ini?
set encoding=utf-8
set fileencoding=utf-8
Apakah saya perlu menyetel keduanya ketika saya ingin menggunakan utf-8?
Juga, apakah saya perlu menyetel pengkodean file dengan set
atau setglobal
?
Jawaban:
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
.
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)."
vim -c "set encoding=utf-8" file.ext
.
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