vim listchar を utf8 以外の環境で動作させるにはどうすればよいでしょうか?

vim listchar を utf8 以外の環境で動作させるにはどうすればよいでしょうか?

私の .vimrc には以下が含まれています:

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

しかし、Unicodeの文字がいくつかあり、LC_CTYPE=zh_TW.Big5環境でvimを実行すると、次のように表示されます。

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

答え1

次の行を vimrc に追加します (できれば先頭近く)。

scriptencoding utf-8

これにより、非 UTF システムを使用している場合でも、vim はファイルを UTF8 として読み取るようになります。その後、文字が現在のエンコーディングに変換されます。listchars オプションで使用している文字が、使用している他のエンコーディングに存在する場合は、その周囲に条件を記述する必要はありません。

関連情報