Bagaimana membiarkan vim listchar bekerja di lingkungan yang tidak utf8?

8

.Vimrc saya mengandung:

if $LANG =~ '\(UTF\|utf\)-\?8' || $LC_CTYPE =~ '\(UTF\|utf\)-\?8'
  set list listchars=tab:»·,trail:~,extends:>,precedes:<
endif

Tapi ada beberapa karakter yang unicode, ketika saya menjalankan vim di bawah LC_CTYPE = lingkungan zh_TW.Big5, itu akan menunjukkan

Error detected while processing /home/user/.vimrc:
  line   70:
E474: Invalid argument: listchars=tab:»·,trail:~,extends:>,precedes:<
Daniel YC Lin
sumber

Jawaban:

5

Tambahkan baris berikut ke vimrc Anda, sebaiknya di dekat awal:

scriptencoding utf-8

Itu akan memberitahu vim untuk membaca file sebagai UTF8 bahkan jika Anda menggunakan sistem non-UTF. Kemudian akan mentranskode karakter apa pun dari itu ke dalam pengkodean Anda saat ini. Jika karakter yang Anda gunakan dalam opsi listchars ada penyandian lain yang Anda gunakan, Anda bahkan tidak perlu memiliki persyaratan tentang itu.

qqx
sumber
Metode ini berfungsi pada vim, tetapi, saya menemukan gvim masih menunjukkan pesan kesalahan itu.
Daniel YC Lin
1
Apakah Anda memiliki .gvimrcfile yang juga berisi karakter unicode? Jika demikian, menambahkan baris yang sama ke file itu harus memperbaiki masalah di sana juga. Perintah itu hanya berlaku untuk file di mana ia ditemukan, jadi perlu dimasukkan dalam file konfigurasi vim mana pengkodean karakter penting.
qqx
Saya menemukan masalah yang disebabkan oleh gvimrc saya dan memperbaikinya.
Daniel YC Lin