Saya mengerjakan halaman web yang melibatkan skrip Non-Inggris dari waktu ke waktu, kebanyakan dari mereka menggunakan utf-8 charset, VIM dan Gvim tidak menampilkan Karakter UTF-8 dengan benar.
Menggunakan VIM 7.3.46 di windows 7 64 bit, dengan set guifont=Monaco:h10
di _vimrc
Apakah ada cara untuk memperbaikinya?
Pembaruan: Saya telah mencari- set guifontwide
cari di Google dan menemukan tindakan sebagai pengganti kedua untuk bahasa daerah.
Saya menambahkan baris berikut di _vimrc dan sebagian besar masalah saya terpecahkan.
set enc=utf-8
set fileencoding=utf-8
set fileencodings=ucs-bom,utf8,prc
set guifont=Monaco:h11
set guifontwide=NSimsun:h12
Font NSimsun di atas berfungsi untuk bahasa Cina, Masalahnya adalah saya tidak tahu bagaimana mereka mendapatkan nama font untuk bekerja dengan VIM, Courier New
disebutkan Courier_New
juga NSimsun
tidak ada di direktori font. Font yang ingin saya gunakan adalah Latha
Tapi, saya tidak tahu bagaimana menggunakannya di File _vimrc. set guifontwide=latha:h12
atau set guifontwide=Latha:h12
tidak bekerja.
Jika saya berhasil mengatur guifontwide
ke latha
, maka masalah saya akan terpecahkan, Bagaimana cara melakukannya?
'guifont'
dan nilainya'guifontwide'
? Juga, OS apa yang Anda gunakan dan versi vim apa?set guifontwide=NSimsun:h12
gagal menggunakan , mengatakan "Font lebar tidak valid" mungkin merupakan masalah non-monospace yang sama?Jawaban:
Coba muat ulang dokumen menggunakan:
Jika berhasil, Anda mungkin harus mengubah
fileencodings
pengaturan di .vimrc Anda.sumber
:u
akan menyelamatkanmu.:set noro
:e! ++enc=utf8
, itu membuat utf-8, tetapi mengeluh[ILLEGAL BYTE in line 286]
(baris bagian biner pertama) di dalam file. Saya menduga perilaku default adalah kembali diam-diam ke beberapa pengkodean lain ketika ini terjadi pada pembukaan Vim. Untuk beberapa alasan, bagaimanapun,echo &enc
masih melaporkan utf-8 dalam kasus itu.&enc
adalah encoding vim yang digunakan secara internal untuk menyimpan konten buffer. Pengaturan yang berisi pengkodean untuk file saat ini adalah&fenc
Apakah Anda mencoba
?
sumber
:set encoding=utf8
AKAN menyegarkan buffer dan jika masalahnya ada dalam pengkodean yang salah, itu akan memperbaikinya. Saya menambahkanset fileencoding=utf8
opsi sehingga Anda tidak akan mengalami kesalahan "Tidak dapat mengonversi beberapa karakter" yang paling membingungkan saat menyimpan.~/.vimrc
dan itu berfungsi dengan baikJika orang Jepang datang ke sini, tambahkan baris berikut ke Anda
~/.vimrc
sumber
Di Microsoft Windows, gvim tidak mengizinkan Anda untuk memilih font non-spasial. Sayangnya Latha adalah font non-monospace.
Ada cara hack untuk mewujudkannya: Menggunakan FontForge (Anda dapat mengunduh biner Windows dari http://www.geocities.jp/meir000/fontforge/ ) untuk mengedit Latha.ttf dan menandainya sebagai font monospace. Melakukan seperti ini:
Semoga berhasil!
sumber
Di Linux, Buka file konfigurasi VIM
Menambahkan baris berikut:
Simpan dan keluar, dan perintah terminal:
Saat ini VIM akan menampilkan bahasa Mandarin dengan benar.
sumber
Apakah masalah ini sudah terpecahkan?
Saya mendapat masalah bahwa gvim tidak menampilkan semua karakter unicode (tetapi hanya sebagian, termasuk umlaut dan karakter beraksen), sementara
:set guifont?
kosong; lihat pertanyaan saya . Setelah membaca di sini, menyetelguifont
ke nilai yang masuk akal memperbaikinya untuk saya. Namun, saya tidak membutuhkan karakter lebih dari 2 byte.sumber
Saya tidak bisa mendapatkan font lain yang saya instal untuk muncul di editor Windows GVim saya, jadi saya hanya beralih ke
Lucida Console
yang memiliki setidaknya dukungan UTF-8 yang lebih baik. Tambahkan ini ke akhir Anda_vimrc
:Sekarang saya melihat setidaknya beberapa karakter UTF-8.
sumber
Pada gvim Windows cukup pilih font "Konsol Lucida".
sumber